Προς το περιεχόμενο

Problem


jonsof

Προτεινόμενες αναρτήσεις

Exo t Dev-C++ os compiler C, C++. Otan douleuo me deiktes panta kolaei, (etkelese kapoia esfalmenh leitoyrgia klp klp). Exei katanthsei eknevristiko.

Kserei kaneis ti mporei na fteei? Mipos exo ligh mnhmh h thn katanalonei amesos o compiler?

Doste ta fota sas!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν και δεν τον ξέρω εντούτοις ίσως υπάρχει κάποιο bug στον ίδιο τον compiler που οδηγεί σε crash, checkαρε για updates ή δες (αν υπάρχουν) FAQs του ώστε να δεις μήπως χρησιμοποιείς κάποια «εξωτική» σύνταξη που δεν μπορεί να την διαχειριστή σωστά! (θυμάμαι κάτι ανάλογο στον MS-C 6.00 πριν αρκετά χρόνια, πρόσφατα δε αντιμετώπισα ένα παρόμοιο παράδοξο άρνηση compilation με unknown error - στον C/C++ Builder 5.0 εξαιτίας παράδοξης σύνταξης!)

 

ʼρα όλα είναι πιθανά..

 

<small>[ 02-03-2002, 23:40: Το μήνυμα επεξεργάστηκε από: Directx ]</small>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Kai ego eimai ths gnomhs oti 8a exei bug o Compiler, mipos ton dokimases?

Pou les ton dokimasa kai se allous upologistes me diaforetikes mnhmes klp kai olo to idio provlima emfanizei, ase pou otan vazeis #include<conio.h>

den dexetai thn clrscr(), oute to getch();(alla mono getche()), provlima eksikoioshs. <img border="0" title="" alt="[Frown]" src="images/icons/frown.gif" />

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν τον κατέβασα (από το http://www.bloodshed.net/devcpp.html) μιας και είναι 7,08MB αλλά ίσως τον κατεβάσω κάποια στιγμή αργότερα (πάντως κατάλαβα ότι είναι ένα free project ακόμα on development.. άρα..), άλλωστε για DOS compilation χρησιμοποιώ ή την Turbo C/C++ for DOS 3.0 ή την MS-C 6.0, για Windows προτιμώ τον Borland C/C++ Builder.

 

Βλέπεις για τέτοιου είδους θέματα προτιμώ compilers από εταιρίες και όχι free projects (αν και ο GCC όταν τον δοκίμασα πριν λίγο καιρό μου φάνηκε εξαιρετικώς).

 

Όσον αφορά τις διαφορές εντολών, είναι φυσικό να υπάρχουν διαφορές από compiler σε compiler όταν οι ρουτίνες δεν ανήκουν στο ANSI C/C++ specification (όπως πχ. η clrscr() ), τώρα όσον αφορά την getch ! λογικά έπρεπε να υπάρχει (δεν μπορώ να πιστέψω ότι δεν υπάρχει ..-!-) δες μήπως είναι δηλωμένη σε κάποιο άλλο αρχείο .h (αν δεν υπάρχει.. τότε μην έχεις τύψεις.. άλλαξε compiler ελαφριά την καρδία <img border="0" title="" alt="[Wink]" src="images/icons/wink.gif" /> )

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Koitaksa ta arxeia conio.h tou dvcpp kai tou Rhide kai eida diafores os pros to mege8os ekana copy tou Rhide sto Devcpp kai to provlima paremine( mallon exei provlima apo th mana tou o Devcpp).

H Turbo C/C++ mono gia C++ den einai, telos panton.

Na se rotiso, H Borland C++ gia Win einai visual kai ftiaxnei kai gia Console Application>?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όχι η Turbo C/C++ 3.0 υποστηρίζει εξίσου καλά και την απλή C ,άλλωστε η C++ δεν είναι τίποτε περισσότερο από μια επέκταση της πρώτης σε θέματα οργάνωσης κώδικα, συνεπώς άνευ της πρώτης απλά δεν υπάρχει.

 

Τώρα όσον αφορά το θέμα της Borland C/C++ τα πράγματα έχουν ως εξής:

 

1ον) Υπάρχει ο Borland C/C++ Compiler που δίδεται από όσο θυμάμαι free (μιας και δεν έρχεται με κάποιο IDE) από το site της Borland (ή καλύτερα Inprise μιας και η πρώτη πουλήθηκε στην τελευταία πριν μερικά χρόνια διατηρώντας πάντως την ονομασία της), μαζί του μπορείς να φτιάξεις Win32s console applications, το γεγονός όμως ότι δίδει μόνο console εργαλεία ίσως καθιστά δύσκολη την ανάπτυξη GUI εφαρμογών (δεν νομίζω πάντως να είναι αδύνατο φυσικά δεν είναι VISUAL & RAD εργαλείο άρα ο κώδικας GUI θα γραφτεί και θα διασυνδεθεί με το «χέρι» --δεν είναι τόσο τρομερό αν γνωρίζεις καλή C και έχεις γνώσεις της Message Driven & Win32s αρχιτεκτονικής , σίγουρα όμως είναι βαρετό & κουραστικό!).

 

2ον) Υπάρχει η εμπορική έκδοση του Borland C/C++ Compiler η οποία κάνει τα προηγούμενα με τη διαφορά ότι έρχεται με ένα λειτουργικότατο IDE και κάποια έξτρα utilities (πχ. Resource Workshop, BDE κοκ.) και την περίπλοκη OWL βιβλιοθήκη (αν είσαι ιδιαίτερα εξοικειωμένος με την C++) που καθιστούν την ανάπτυξη GUI εφαρμογών κάπως πιο ανθρώπινη ( <img border="0" title="" alt="[Wink]" src="images/icons/wink.gif" /> υπόθεση.

 

3ον) Υπάρχει τέλος ο Borland C/C++ Builder ο οποίος κάνει όλα τα παραπάνω συν ότι επιτρέπει VISUAL (RAD) development (μέσο της βιβλιοθήκης VCL και της λογικής των Components) πράγμα που σημαίνει ότι μαζί του μπορείς να αναπτύξεις εύκολα και γρήγορα (αν φυσικά το θέλεις, αλλιώς υποστηρίζει και τον κλασσικό C/C++ Win32s API προγραμματισμό) κάθε είδους εφαρμογή για Windows.

 

Έχοντας χρησιμοποιήσει και τους τρεις τρόπους προγραμματισμού των Windows (console apps, win32s apps, VCL apps , --εκτός του OWL δεν είμαι fun της C++) σαφώς για μεγάλα projects προτιμώ τον τελευταίο (Builder).

 

* Φυσικά μπορείς να δεις και τα VISUAL εργαλεία της Microsoft (Visual C/C++ κοκ.) αλλά δεν θα τα χαρακτήριζα και τόσο φιλικά για τον χρήστη.

 

<small>[ 03-03-2002, 19:41: Το μήνυμα επεξεργάστηκε από: Directx ]</small>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λέγεται Borland C/C++ Builder και όπως σου εξήγησα πιο πάνω κάνει ότι και οι προηγούμενοι (άλλωστε είναι μια μετεξέλιξη τους) μόνο που παρέχει και δυνατότητες οπτικού προγραμματισμού (σκέψου ένα περιβάλλον σαν της Visual Basic ή καλύτερα της Delphi ουσιαστικά «είναι μια Delphi για την γλώσσα C/C++» --το λέω έτσι απλά για να καταλάβεις περίπου την φιλοσοφία του), για περισσότερα μπορείς να δεις το http://www.inprise.com/bcppbuilder/ .

 

<small>[ 04-03-2002, 08:13: Το μήνυμα επεξεργάστηκε από: Directx ]</small>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

O borland C++ den einai mono gia console mporeis na kaneis kai windows based pragmata...apla den voithaei to pragma toso poli!

Vlepe WIN API (bliax xexexe) pote den katafera na to katalavw plhrws!

Anyway an sou vrisketai eukairo koitakse thn Visual C++ ths Microsoft nomizw oti afto psaxneis vevaia diaferei ligo oso anafora thn ANSI C++ alla to sinithizeis!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χμ.. μήπως υπάρχει κάποιο bug στο source σου ; (το πιο δύσκολο άλλωστε τμήμα της C/C++ είναι οι pointers..)

 

Όσον αφορά την Visual C++ ,γιατί όχι; Αν μπορείς να την βρεις δεν χάνεις τίποτε να την δοκιμάσεις.. καμία

φορά το γεγονός ότι δεν ακολουθεί απόλυτα (πιστά) το πρότυπο ANSI (Μ$ είναι αυτή ;-) είναι πλεονέκτημα (χωρίς πλάκα καμία φορά η απαιτήσεις του ANSI αν και πετυχαίνουν «καθαρότερο» κώδικα εντούτοις ταλαιπωρούν τον προγραμματιστή πχ. Explicated casting).

 

Πάντως από την στιγμή που θες να προγραμματίσεις GUIs (για consoles δεν υπάρχει πρόβλημα.. κλασσικές ρουτίνες I/O κοκ..) να ξέρεις ότι το Win32s API είναι απαραίτητο (λιγότερο σε C/C++ Builder (ή Delphi) , περισσότερο σε Microsoft Visual C++ έστω και με την «περίφημη & περίπλοκη» MFC ,σχεδόν καθόλου από όσο έχω ακούσει σε (Visual) Basic).

 

Ελπίζω να βρεις την άκρη,

 

Good Luck :-)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Originally posted by Directx:

<strong>Χμ.. μήπως υπάρχει κάποιο bug στο source σου ; (το πιο δύσκολο άλλωστε τμήμα της C/C++ είναι οι pointers..)

</strong></font><hr /></blockquote><font size="2" face="Verdana, Helvetica, sans-serif">To idio source to ekana compile ston borland c++ 5.02, kai sto DJGPP me IDE Rhide, kai sto deutero doulepse polu apsoga, sto proto leei px oti den xrhsimopoio ton dikth metavlhth prin kala kala ton oriso,

px an po

.....

int *a;

.....

for(i=0;i<3;i++) {a=i;}

Sto Borland den leitourgei eno sto Djgpp leitourgei.

Paralogo!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λοιπόν νομίζω ότι τον «πιάσαμε» τον ένοχο.. δηλαδή:

 

Το παραπάνω παράδειγμα όντως δεν δουλεύει ούτε στον C++ Builder 4 μιας και όταν δοκιμάσεις να το εκτελέσεις θα crasαρι τα Windows με page fault (ή null pointer assignment σε DOS που μας πονηρεύει περισσότερο) πράγμα που είναι φυσικό αφού αν και ορίζεις ένα integer pointer εντούτοις δεν φροντίζεις να δεσμεύσεις μνήμη για αυτόν αλλά αντίθετα τον αφήνεις να δείχνει (pointing) οπουδήποτε στην μνήμη του συστήματος (τουλάχιστο από ότι βλέπω στο code-snip που παραθέτεις)!

 

Αν λοιπόν δοκιμάσεις την παρακάτω μετατροπή θα πρέπει (ελπίζω) ο κώδικα σου να δουλέψει σωστά (αφού τώρα ο *a κάνει pointing- στην μνήμη που δεσμεύσαμε με την malloc)

 

#include <stdio.h>

#include <alloc.h> // αν δεν υπάρχει η malloc δηλωμένη εδώ βάλε τη stdlib.h

 

int *a,i;

 

void main()

{

// Allocate pointer memory.

if((a=(int)malloc(4))==NULL)

{

printf(" Malloc failure !\n");

return;

}

 

[.. κώδικας σου ] // -=για κάποιον λόγο δεν μπορώ να τον συμπεριλάβω στο post μου (αρνείται το insomnia forum με Sorry, we do not permit this HTML tag: Parenthesis in HTML tag)

 

// Free pointer memory.

free(a);

}

 

Ο DJGPP (έκδοση DOS) από όσο θυμάμαι και σε μια δικιά μου περίπτωση δεν αντιδρά άσχημα σε πολλά λάθει τέτοιου είδους μιας και ο memory manager του (DOS memory extender) έχει τεράστια πλαίσια αντοχής, που δεν έχουν όμως οι υπόλοιποι DOS ή Windows compiler (κάποτε από ένα σφάλμα μου στη διαχείριση μνήμης έφτανε ο DJGPP να κάνει allocation μέχρι και 40MB στο swap file του.. εκεί που τα υπόλοιπα εκτελέσιμα άλλων compilers παραδίδανε το πνεύμα τους μετά από λίγο.. ; - )

 

** Το παραπάνω παράδειγμα δουλεύει τόσο σε C++ Builder 4 όσο και σε DOS MS-C 6.00 λογικά πρέπει να δουλεύει σε όλους τους compiler .. (ελπίζω) **

 

<small>[ 09-03-2002, 15:33: Το μήνυμα επεξεργάστηκε από: Directx ]</small>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...