georgemarios Δημοσ. 12 Νοεμβρίου 2008 Δημοσ. 12 Νοεμβρίου 2008 Βλέπω πολλούς να λένε φράσεις όπως "Το MFC πέθανε" και ότι αν θέλεις να κάνεις κάνεις GUI ασχολήσου με .NΕΤ ή και εγώ δεν ξέρω με τι άλλο... Και ρωτάω: Εγώ που θέλω να φτιάξω απλά προγραμματάκια και όχι το δικό μου Photoshop ή το δικό μου Autocad, γιατί να μην χρησιμοποιείσω το MFC ?? Το MFC δε στηρίζεται στα winApi? Τα GUI του .NET, της VB κτλ κλήσεις στις συναρτήσεις του winApi δεν κάνουν? Για πιο λόγο λοιπόν τόσο απαίχθια για τα MFC και winApi??? γεια σου μια τεχνολογια πεθαινει οταν παυουν να την χρησιμοποιουν παυουν να την χρησιμοποιουν οταν αυτο που πετυχαινει δεν ειναι πλεον χρησιμο ή αυτο που πετυχαινει μπορει να το πετυχει μια αλλη πιο ευκολα και αποτελεσματικα. Η MFC δε μπορει να πεθανει ετσι ευκολα γιατι υπηρχε (υπαρχει) για ΠΟΛΥ καιρο, υπαρχει τεραστιο community απο πισω και τονοι απο samples / ετοιμα projects απο πισω της. Ρωτας ομως γιατι τοση απεχθεια..... βασικα το MFC ειναι απο τα πιο κακογραμμενα και δυσχρηστα frameworks ever. O κωδικας που αναγκαζεσαι να γραψεις με αυτο ειναι απαισιος και δυσαναγνωστος για τον απειρο χρηστη. Ολα αυτα ξεπερνιουνται με την εξασκηση βεβαια αλλα αν την αντιπαραθεσεις με την υπερευκολια του C++ builder ας πουμε.... ή το .ΝΕΤ.... σε οποιο τομεα του development cycle και να το δεις η MFC χανει... development speed/debugging/επεκτασιμοτητα... Ωστοσο, οπως ειπα και πριν, αυτοι που εχουν μαθει MFC ειναι πολλοι, και τα projects που ειναι γραμμενα σε MFC ειναι απειρα. Αν υπηρχε rad εργαλειο για MFC τοσο καλο οσο του .NET ας πουμε, τοτε το MFC για μενα τουλαχιστον θα ηταν μονοδρομος.
kickeras Δημοσ. 12 Νοεμβρίου 2008 Δημοσ. 12 Νοεμβρίου 2008 Η MFC δε μπορει να πεθανει ετσι ευκολα γιατι υπηρχε (υπαρχει) για ΠΟΛΥ καιρο, υπαρχει τεραστιο community απο πισω και τονοι απο samples / ετοιμα projects απο πισω της. Ρωτας ομως γιατι τοση απεχθεια..... βασικα το MFC ειναι απο τα πιο κακογραμμενα και δυσχρηστα frameworks ever. O κωδικας που αναγκαζεσαι να γραψεις με αυτο ειναι απαισιος και δυσαναγνωστος για τον απειρο χρηστη. Εδώ οι ίδιοι developers της Microsoft ακούνε πάνε να φτιάξεις το MFC κ τρέχουν . Δουλεύει αλλά...είναι τόσο κακογραμμένο που δε μπορείς να το διορθώσεις.
eliascm21 Δημοσ. 12 Νοεμβρίου 2008 Δημοσ. 12 Νοεμβρίου 2008 Ωραία όλα αυτά, τα καταλαβένω και σας ευχαριστώ. Άλλα έχω ακόμα μερικές απορίες... To MFC στηρίζεται στο winApi. Το ίδιο συμβαίνει και με το C++ builder ή το .NET? Αν ναι, τότε από πλευράς ταχύτητας εφαρμογής, πρώτα θα έπρεπε να έρχεται το winApi, μετά το MFC και μετά όλα τα άλλα (καθώς υποτήθεται ότι όσο πιο χαμηλή γλώσα χρησιμοποείς άμεσα, τόσο το καλύτερο από πλευράς ταχύτητας). Ισχύει όντος κάτι τέτοιο??? Τελικά, επείδη σκέφτομαι να ασχολιθώ με winApi, αξίζει πλέον σήμερα ή όχι??? Ή να πάω κατευθείαν σε .NET?? (μιλάμε για απλές windows GUI εφαρμογές με γνώμονα την ταχύτητα - αλλά και την μεταφερσιμότητα) - σημείωση: ξέρω C, όχι C++ Υ.Σ. το "rad εργαλειο" που αναφέρεις georgemarios τι σημαίνει?
georgemarios Δημοσ. 12 Νοεμβρίου 2008 Δημοσ. 12 Νοεμβρίου 2008 rad = rapid application development πχ ο editor του visual studio για να φτιαχνεις dialogs που παιρνεις τα κουμπακια με το ποντικι και τα πετας στη φορμα -----Προστέθηκε 12/11/2008 στις 01 : 05 : 33----- το MFC ειναι ενας OO wrapper για το windows api, δηλαδη ηταν μια προσπαθεια της Microsoft να δωσει ενα interface με κλασεις για να κανει καποιος εφαρμογες στα windows. Σιγουρα εχει επιτευχθει μεγαλος βαθμος ευκολιας σε σχεση με το να προγραμματιζει καποιος απευθειας σε win api αλλα... αλλα... αλλα... εχει καταληξει να ειναι ενα αρτηριοσκληρωτικο και δυσπροσαρμοστο εργαλειο. Τα βασικα πραγματα τα κανεις ευκολα αλλα αμα θες (και σιγουρα θες) κατι πιο εξειδικευμενο αρχιζουν τα νταουλια και τα βιολια.... Στο θεμα ταχυτητας που λες..... Με μια κουβεντα, η απαντηση στο ερωτημα σου ειναι ΝΑΙ, το win api ειναι γρηγοροτερο αλλα!! με τη προυποθεση παντα να ξερεις τι κανεις. Επισης!! Στο 99% των περιπτωσεων η ταχυτητα του GUI δε θα επρεπε να σε απασχολει. Αν ενα κουμπι κανει 2ms παραπανω να αποκριθει, σιγα τα ωα. Ο χρηστης αργει πολυ περισσοτερο να αποκριθει αρα πρακτικα δεν υπαρχει ζητημα. Αυτο που πρεπει να σε απασχολει ειναι ποσος χρονος απο τη ζωη σου σου θα αναλωθει στο να κανεις κατι που υποτιθεται ειναι τετριμενο. Ποση ωρα θα σου παρει να το μετατρεψεις ωστε να κανει κατι αλλο. Ολα αυτα ειναι πραγματακια που τα μαθαινεις στη πραξη βεβαια. Αν θες να δεις πρωτα το win api για να σου φυγει η καψα... by all means do it, θα ηθελα και εγω παρα πολυ να ειχα το χρονο να τα ψαξω ολα. Δεν τον εχω ομως, δουλευω 10ωρο και πρεπει να βρισκω γρηγορες λυσεις που δουλευουν.... Αυτα απο μενα, ελπιζω να βοηθησα...
Directx Δημοσ. 12 Νοεμβρίου 2008 Δημοσ. 12 Νοεμβρίου 2008 Το MFC θα πρέπει να ειδωθεί με βάση την εποχή του, τους σκοπούς και τους στόχους της Microsoft όταν το κυκλοφόρησε, που δεν ήταν άλλοι από το να χτυπήσει το ανταγωνιστικό προϊόν της Borland, το OWL (Object Windows Library) καθώς το τελευταίο μέχρι την έλευση του MFC ήταν ο αδιαφιλονίκητος ηγέτης στην ανάπτυξη εφαρμογών για Windows (εκτός του Windows API φυσικά). Τεχνικά, το MFC αποτελεί ένα λεπτό υπόστρωμα στο Windows API, μια χαλαρή συλλογή από αντικείμενα (classes αν θέλετε) που δεν τρομάζουν ιδιαίτερα προγραμματιστές με ικανή εμπειρία σε C, τούτος ήταν ο αρχικός σκοπός της MS και αντίθετα με άλλες απόψεις, δεν θεωρώ ότι ήταν αποτέλεσμα λανθασμένης ή γρήγορης (άρπα κόλλα) σχεδίασης του συγκεκριμένου framework, αντίθετα ήταν ένα υπολογισμένο βήμα από την Microsoft ώστε να χτυπήσει τον μεγαλύτερο ανταγωνιστή της, το Borland OWL. Βλέπετε το Borland OWL από την έκδοση 2.0 και μετά αποτελούσε υπόδειγμα OOP framework και μαζί με τον Borland C++ compiler για Windows (Turbo C++ 3.1, ύστερα Turbo C++ 4.xx ..) χρησιμοποιούσε σχεδόν το σύνολο των τεχνολογιών της C++ ώστε να προσφέρει ένα πλήρες Object Oriented περιβάλλον ανάπτυξης εφαρμογών. Τούτο αν και διευκόλυνε θεωρητικά τον προγραμματισμό σε Windows (κρύβοντας το άχαρο Windows API), είχε ένα μεγάλο μειονέκτημα. Ο προγραμματιστής έπρεπε να αφιερώσει χρόνο στην εκμάθηση του OWL και κατά συνέπεια στην εκμάθηση πολλών αρχών που διέπουν την φιλοσοφία της C++ πάνω στην οποία το OWL είχε στηριχθεί. Τον καιρό εκείνο όμως, τέλει του 1980 αρχές του 1990, ο μέσος προγραμματιστής γνώριζε συνήθως (πέραν της BASIC) *Turbo PASCAL, μπορεί και Turbo C για DOS (πολλοί επίσης Assembly –μην σας κάνει εντύπωση ήταν μια άλλη εποχή). Ο προγραμματισμός σε Windows ήταν ακόμα στα σπάργανα ενώ θεωρείτο δύσκολος, «ρουτινιάρικος» όπως λέγανε κάποιοι τότε για να περιγράψουν τις 700+ ρουτίνες που πρόσφερε το Windows API (ακόμα δεν υπήρχε τεχνολογία COM που τα Interfaces του θυμίζουν C++ class –ενώ το OLE ήταν υπό σχεδίαση για τα 3.1 –αν θυμάμαι καλά) . Συνεπώς η εκμάθηση του Borland OWL διευκόλυνε σίγουρα την ανάπτυξη λογισμικού για Windows (την επιτάχυνε δηλαδή) αλλά απαιτούσε από τους C προγραμματιστές ικανή γνώση της C++ ενώ επίσης απαιτούσε (όπως και το MFC βέβαια) αλλαγή στην νοοτροπία σχεδίασης του λογισμικού τους (Messages-Driven architecture). Εκεί στόχευσε λοιπόν η Microsoft κατά την σχεδίαση της απάντησης της προς το Borland OWL, το MFC είναι πιο εύκολα κατανοητό για ένα C προγραμματιστή από ότι το OWL που εκμεταλλεύεται την C++ σε όλο το μεγαλείο της (και στις ιδιορρυθμίες της επίσης). Το μειονέκτημα της χαμηλής απομόνωσης του προγραμματιστή από το Windows API, έγινε με βάση τις ανάγκες της εποχής εκείνης το μεγάλο πλεονέκτημα του MFC και οδήγησε το Borland OWL στην λήθη. Φυσικά αργότερα και όσο ο κόσμος μάθαινε C++ έγινε φανερό ότι το MFC «έπασχε» σχεδιαστικά, αλλά ο σκοπός του είχε επιτευχθεί 100%. Έθεσε τέλος στην παντοκρατορία του Borland OWL. * Turbo διότι τον καιρό εκείνο οι Borland compilers σε περιβάλλον DOS / Windows ήταν περίπου ένα είδος de facto (ύστερα έδωσαν την θέση τους για ένα διάστημα στην Watcom-C όπου γράφθηκαν πολλά παιχνίδια «εποχής» '93-'95 |μια άλλη ιστορία...). Υ.Γ. Φυσικά η Borland πήρε την εκδίκηση της με την παρουσίαση της Delphi και του VCL framework που εκμεταλλεύτηκε την έννοια του αντικειμένου (Component) πεμπτουσία του "γρήγορου προγραμματισμού" (RAD), μια φιλοσοφία που εισήγαγε η Microsoft με την Visual BASIC 1. Ύστερα ήρθε ο C++ Builder που έφερε την ιδέα των αντικειμένων (RAD) από την Delphi/Pascal στην C/C++ και τελικά η Microsoft «αντέγραψε» εκ νέου την Borland με το .NET το οποίο κατά την γνώμη μου αποτελεί αντιγραφή της VCL σε φιλοσοφία Java (.NET = VCL + Java Bytecode) –άλλωστε .NET & VCL έχουν κοινό πατέρα (σχεδιαστή). Όσον αφορά το Windows API, η γνώση του δεν έβλαψε ποτέ κανέναν, αλλά όσο βελτιώνονται τα framework τόσο θα υποχωρεί.
eliascm21 Δημοσ. 12 Νοεμβρίου 2008 Δημοσ. 12 Νοεμβρίου 2008 ΟΥΑΟΥ! Πολύ χρήσιμες και ωραίες πληροφορίες... Σας ευχαριστώ πολύ και τους δύο.
bigN Δημοσ. 16 Μαρτίου 2009 Δημοσ. 16 Μαρτίου 2009 Διάβασα με ενδιαφέρον όλα τα post και ήθελα με τη σειρά μου να ρωτήσω κάποια πράγματα... Είμαι "νέος" στο χώρο του προγραμματισμού με κάποιοες εφαρμογές στη C#, vba, php,ActionScript3, και τελευταία ενδιαφέρθηκα για τη C++ και συγκεκριμένα MFC λόγω της διδακτορικής μου διατριβής. Στην αρχή αποφάσισα να χρησιμοποιήσω τη C# αλλά διαπίστωσα ότι δεν υπάρχει αρκετή υποδομή - βιβλιογραφία για αριθμητική ανάλυση σε αντίθεση με την C++ όπου ο τόπος πραγματικά "βράζει" από αναφορές. Έτσι λοιπόν αποφάσισα να ξεκινήσω με τη Visual C++ 2008 και κάποια tutorial όμως είδα αμέσως ότι ο κώδικας πραγματικά "σπάει" τα κόκαλα... Δεν είμαι ξένος με ΟΟP ούτε με τη σύνταξή της C++ αλλά πραγματικά χάθηκα όταν ο wizard δημιούργησε το πρώτη εφαρμογή κοινώς Για να κάνω μια απλή εφαρμογή με κουμπιά και messageboxes είδα και έπαφα... Επομένως η ερωτησή μου είναι ....αξίζει να ασχοληθώ με την MFC C++ για επιστημονικό προγραμματισμό? Το MFC θα πρέπει να ειδωθεί με βάση την εποχή του, τους σκοπούς και τους στόχους της Microsoft όταν το κυκλοφόρησε, που δεν ήταν άλλοι από το να χτυπήσει το ανταγωνιστικό προϊόν της Borland, το OWL (Object Windows Library) καθώς το τελευταίο μέχρι την έλευση του MFC ήταν ο αδιαφιλονίκητος ηγέτης στην ανάπτυξη εφαρμογών για Windows (εκτός του Windows API φυσικά). Τεχνικά, το MFC αποτελεί ένα λεπτό υπόστρωμα στο Windows API, μια χαλαρή συλλογή από αντικείμενα (classes αν θέλετε) που δεν τρομάζουν ιδιαίτερα προγραμματιστές με ικανή εμπειρία σε C, τούτος ήταν ο αρχικός σκοπός της MS και αντίθετα με άλλες απόψεις, δεν θεωρώ ότι ήταν αποτέλεσμα λανθασμένης ή γρήγορης (άρπα κόλλα) σχεδίασης του συγκεκριμένου framework, αντίθετα ήταν ένα υπολογισμένο βήμα από την Microsoft ώστε να χτυπήσει τον μεγαλύτερο ανταγωνιστή της, το Borland OWL. Βλέπετε το Borland OWL από την έκδοση 2.0 και μετά αποτελούσε υπόδειγμα OOP framework και μαζί με τον Borland C++ compiler για Windows (Turbo C++ 3.1, ύστερα Turbo C++ 4.xx ..) χρησιμοποιούσε σχεδόν το σύνολο των τεχνολογιών της C++ ώστε να προσφέρει ένα πλήρες Object Oriented περιβάλλον ανάπτυξης εφαρμογών. Τούτο αν και διευκόλυνε θεωρητικά τον προγραμματισμό σε Windows (κρύβοντας το άχαρο Windows API), είχε ένα μεγάλο μειονέκτημα. Ο προγραμματιστής έπρεπε να αφιερώσει χρόνο στην εκμάθηση του OWL και κατά συνέπεια στην εκμάθηση πολλών αρχών που διέπουν την φιλοσοφία της C++ πάνω στην οποία το OWL είχε στηριχθεί. Τον καιρό εκείνο όμως, τέλει του 1980 αρχές του 1990, ο μέσος προγραμματιστής γνώριζε συνήθως (πέραν της BASIC) *Turbo PASCAL, μπορεί και Turbo C για DOS (πολλοί επίσης Assembly –μην σας κάνει εντύπωση ήταν μια άλλη εποχή). Ο προγραμματισμός σε Windows ήταν ακόμα στα σπάργανα ενώ θεωρείτο δύσκολος, «ρουτινιάρικος» όπως λέγανε κάποιοι τότε για να περιγράψουν τις 700+ ρουτίνες που πρόσφερε το Windows API (ακόμα δεν υπήρχε τεχνολογία COM που τα Interfaces του θυμίζουν C++ class –ενώ το OLE ήταν υπό σχεδίαση για τα 3.1 –αν θυμάμαι καλά) . Συνεπώς η εκμάθηση του Borland OWL διευκόλυνε σίγουρα την ανάπτυξη λογισμικού για Windows (την επιτάχυνε δηλαδή) αλλά απαιτούσε από τους C προγραμματιστές ικανή γνώση της C++ ενώ επίσης απαιτούσε (όπως και το MFC βέβαια) αλλαγή στην νοοτροπία σχεδίασης του λογισμικού τους (Messages-Driven architecture). Εκεί στόχευσε λοιπόν η Microsoft κατά την σχεδίαση της απάντησης της προς το Borland OWL, το MFC είναι πιο εύκολα κατανοητό για ένα C προγραμματιστή από ότι το OWL που εκμεταλλεύεται την C++ σε όλο το μεγαλείο της (και στις ιδιορρυθμίες της επίσης). Το μειονέκτημα της χαμηλής απομόνωσης του προγραμματιστή από το Windows API, έγινε με βάση τις ανάγκες της εποχής εκείνης το μεγάλο πλεονέκτημα του MFC και οδήγησε το Borland OWL στην λήθη. Φυσικά αργότερα και όσο ο κόσμος μάθαινε C++ έγινε φανερό ότι το MFC «έπασχε» σχεδιαστικά, αλλά ο σκοπός του είχε επιτευχθεί 100%. Έθεσε τέλος στην παντοκρατορία του Borland OWL. * Turbo διότι τον καιρό εκείνο οι Borland compilers σε περιβάλλον DOS / Windows ήταν περίπου ένα είδος de facto (ύστερα έδωσαν την θέση τους για ένα διάστημα στην Watcom-C όπου γράφθηκαν πολλά παιχνίδια «εποχής» '93-'95 |μια άλλη ιστορία...). Υ.Γ. Φυσικά η Borland πήρε την εκδίκηση της με την παρουσίαση της Delphi και του VCL framework που εκμεταλλεύτηκε την έννοια του αντικειμένου (Component) πεμπτουσία του "γρήγορου προγραμματισμού" (RAD), μια φιλοσοφία που εισήγαγε η Microsoft με την Visual BASIC 1. Ύστερα ήρθε ο C++ Builder που έφερε την ιδέα των αντικειμένων (RAD) από την Delphi/Pascal στην C/C++ και τελικά η Microsoft «αντέγραψε» εκ νέου την Borland με το .NET το οποίο κατά την γνώμη μου αποτελεί αντιγραφή της VCL σε φιλοσοφία Java (.NET = VCL + Java Bytecode) –άλλωστε .NET & VCL έχουν κοινό πατέρα (σχεδιαστή). Όσον αφορά το Windows API, η γνώση του δεν έβλαψε ποτέ κανέναν, αλλά όσο βελτιώνονται τα framework τόσο θα υποχωρεί.
georgemarios Δημοσ. 16 Μαρτίου 2009 Δημοσ. 16 Μαρτίου 2009 Διάβασα με ενδιαφέρον όλα τα post και ήθελα με τη σειρά μου να ρωτήσω κάποια πράγματα...Είμαι "νέος" στο χώρο του προγραμματισμού με κάποιοες εφαρμογές στη C#, vba, php,ActionScript3, και τελευταία ενδιαφέρθηκα για τη C++ και συγκεκριμένα MFC λόγω της διδακτορικής μου διατριβής. Στην αρχή αποφάσισα να χρησιμοποιήσω τη C# αλλά διαπίστωσα ότι δεν υπάρχει αρκετή υποδομή - βιβλιογραφία για αριθμητική ανάλυση σε αντίθεση με την C++ όπου ο τόπος πραγματικά "βράζει" από αναφορές. Έτσι λοιπόν αποφάσισα να ξεκινήσω με τη Visual C++ 2008 και κάποια tutorial όμως είδα αμέσως ότι ο κώδικας πραγματικά "σπάει" τα κόκαλα... Δεν είμαι ξένος με ΟΟP ούτε με τη σύνταξή της C++ αλλά πραγματικά χάθηκα όταν ο wizard δημιούργησε το πρώτη εφαρμογή κοινώς Για να κάνω μια απλή εφαρμογή με κουμπιά και messageboxes είδα και έπαφα... Επομένως η ερωτησή μου είναι ....αξίζει να ασχοληθώ με την MFC C++ για επιστημονικό προγραμματισμό? [/quote] (1) τι βρηκες σε c++ σαν παραδειγμα που δεν μπορεις να μετατρεψεις σε c# ? (εκτος και αν θες να χρησιμοποιησεις ετοιμα κομματια κωδικα που ειναι αλλη ιστορια) (2) θα σου φαει περισσοτερο χρονο μεχρι να εξοικειωθεις.... χρονο.... phd... θες να συνεχισω; νομιζω καταλαβες αν πρεπει να χρησιμοποιησεις c++ για τη δουλεια σου, βρες καλυτερα ενα πιο ευκολο framework. Την java τη σκεφτηκες; Χρησιμοποιειται ευρεως και για επιστημονικες λυσεις. Και ειναι ευκολη και εχει μεγαλη κοινοτητα. Σιγουρα θα βρεις υλικο αν ψαξεις.
bigN Δημοσ. 16 Μαρτίου 2009 Δημοσ. 16 Μαρτίου 2009 1) Όντος έχω βρεί πάρα πολύ έτοιμο κώδικα .... τον οποίο θα πρέπει να τον μεταγλωτίσω (Matlab, C++) 2) Έχω σκεφτεί την java .... και μου φάνηκε σαν πολύ ωραία ιδέα, μου έτυχαν όμως αργότερα μερικά project τα οποία τα υλοποίησα με τη c# και κόλλησα με αυτήν. Τώρα όμως είμαι μπερδεμένος διότι δεν είναι ότι δεν μπορείς να κάνεις κάτι με τη C# (με P/Invoke κλπ) μπορώ να καλώ οποιοδήποτε dll, απλά δεν υπάρχουν καθόλου παραδείγματα για επιστημονικό προγραμματισμό.... ενώ για τη C++ είνια άπειρα. Σχετικα με το τί θέλω κάνω .... σκέφτομαι : - Επιλύση μερικών διαφορικών εξισώσεων - Finite Element Methods - Ίσως αργότερα σύνδεση με PLC Τι εννοείς με το "βρες καλυτερα ενα πιο ευκολο framework." Διάβασα με ενδιαφέρον όλα τα post και ήθελα με τη σειρά μου να ρωτήσω κάποια πράγματα...Είμαι "νέος" στο χώρο του προγραμματισμού με κάποιοες εφαρμογές στη C#' date=' vba, php,ActionScript3, και τελευταία ενδιαφέρθηκα για τη C++ και συγκεκριμένα MFC λόγω της διδακτορικής μου διατριβής. Στην αρχή αποφάσισα να χρησιμοποιήσω τη C# αλλά διαπίστωσα ότι δεν υπάρχει αρκετή υποδομή - βιβλιογραφία για αριθμητική ανάλυση σε αντίθεση με την C++ όπου ο τόπος πραγματικά "βράζει" από αναφορές. Έτσι λοιπόν αποφάσισα να ξεκινήσω με τη Visual C++ 2008 και κάποια tutorial όμως είδα αμέσως ότι ο κώδικας πραγματικά "σπάει" τα κόκαλα... Δεν είμαι ξένος με ΟΟP ούτε με τη σύνταξή της C++ αλλά πραγματικά χάθηκα όταν ο wizard δημιούργησε το πρώτη εφαρμογή κοινώς Για να κάνω μια απλή εφαρμογή με κουμπιά και messageboxes είδα και έπαφα... Επομένως η ερωτησή μου είναι ....αξίζει να ασχοληθώ με την MFC C++ για επιστημονικό προγραμματισμό? [/quote] (1) τι βρηκες σε c++ σαν παραδειγμα που δεν μπορεις να μετατρεψεις σε c# ? (εκτος και αν θες να χρησιμοποιησεις ετοιμα κομματια κωδικα που ειναι αλλη ιστορια) (2) θα σου φαει περισσοτερο χρονο μεχρι να εξοικειωθεις.... χρονο.... phd... θες να συνεχισω; νομιζω καταλαβες αν πρεπει να χρησιμοποιησεις c++ για τη δουλεια σου, βρες καλυτερα ενα πιο ευκολο framework. Την java τη σκεφτηκες; Χρησιμοποιειται ευρεως και για επιστημονικες λυσεις. Και ειναι ευκολη και εχει μεγαλη κοινοτητα. Σιγουρα θα βρεις υλικο αν ψαξεις.
georgemarios Δημοσ. 16 Μαρτίου 2009 Δημοσ. 16 Μαρτίου 2009 καταρχην, ξεχασα να σε ρωτησω, ξερεις C++ ή κατευθειαν πηγες στη Visual C (MFC)? το ενδεχομενο να κανεις το GUI σε .NET ας πουμε αλλα τα μαθηματικα να γινονται με C++ πως σου ακουγεται σαν option? Εισαι σε θεση να κουμανταρεις C++ κωδικα (οχι MFC)?
bigN Δημοσ. 16 Μαρτίου 2009 Δημοσ. 16 Μαρτίου 2009 Διαβάζω άνετα τον κώδια της C++, αυτό όμως δεν σημαίνει ότι είμαι ειδικός και δεν έχω κάνει καμιά εφαρμογή με την C++. Eδώ είναι και η απορία μου..... από τη στιγμή που με τη Visual C (MFC) συνδυάζεις και το κώδικα και το GUI μήπως είναι προτιμώτερο να τα κάνω όλα σε VS C++? Ξεκίνησα να κάνω κάτι tutorial.... και από άποψη δυσκολίας δεν έχουν καμία σχέση με τη C#. καταρχην, ξεχασα να σε ρωτησω, ξερεις C++ ή κατευθειαν πηγες στη Visual C (MFC)? το ενδεχομενο να κανεις το GUI σε .NET ας πουμε αλλα τα μαθηματικα να γινονται με C++ πως σου ακουγεται σαν option? Εισαι σε θεση να κουμανταρεις C++ κωδικα (οχι MFC)?
georgemarios Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 ok, για να σε βοηθησω να το ξεδιαλυνεις λιγο..... κανεις ενα phD, και επειδη ξερω τι παει να πει phD, ξερω πως ο χρονος σου ειναι πολυτιμος, και το τελευταιο πραγμα που θες ειναι να τραβας τα μαλλια σου να βρεις γιατι σκαει το προγραμμα σου. Και αυτο θα γινει με την MFC γιατι οσο γινεται πιο περιπλοκο το προγραμμα, τοσο πιο μεγαλη εμπειρια χρειαζεται για να το κρατησεις σε μια σταθερη, και παραλληλα επεκτασιμη κατασταση. Αυτη την εμπειρια εσυ δεν την εχεις, και για να σου φυγει η ψαριλα πρεπει να αναλωσεις χρονο σε προτζεκτακια του ειδους. Χρονο που εσυ δεν εχεις. Εγω την MFC πλεον την προτεινω μονο σε οσους σκοπευουν να ασχοληθουν επαγγελματικα με ηδη υπαρχοντα projects γραμμενα σε MFC. Με legacy πραγματα δηλαδη. Για καποιον που χρειαζεται να φτιαχνει προγραμματακια με γρηγορο και ασφαλη τροπο, το .NET δειχνει να ειναι το μελλον (στα windows τουλαχιστον). 'Η η Java αν θες να εισαι πιο cross-platform κατασταση. Kαι φυσικα υπαρχει ο C Builder ο οποιος ομως δε ξερω σε τι φαση βρισκεται πλεον, νομιζω καποιος αναφερθηκε πιο πριν γιαυτο. Αν οχι, καποιος θα βρεθει να σου πει. Θυμαμαι πως οταν τον δουλεψα λιγο καιρο ηταν γαματος. Btw μπορεις να χρησιμοποιησεις c++ με .ΝΕΤ αν αυτο σε ενδιαφερει. Η να βρεις καποιο αλλο παραθυρικο framework οπως Qt, wxWidgets.. ολα αυτα εχουν συζητηθει σε προηγουμενα ποστς αυτου του θρεντ. Απλα αυτο που θα πρεπει τελικα να σκεφτεις ειναι ΠΟΣΟ χρονο θα σου παρει να μαθεις τη καθε γλωσσα/framework και ΠΟΣΟ χρονο θα σου παρει να υλοποιησεις αυτο που θες με την εκαστοτε γλωσσα/framework Το gui των εφαρμογων σου πως το φανταζεσαι? Ποσο περιπλοκο? Εχεις δει κανενα παρομοιο προγραμμα? Φιλικα
Directx Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 Kαι φυσικα υπαρχει ο C Builder ο οποιος ομως δε ξερω σε τι φαση βρισκεται πλεον, νομιζω καποιος αναφερθηκε πιο πριν γιαυτο. Αν οχι, καποιος θα βρεθει να σου πει. Θυμαμαι πως οταν τον δουλεψα λιγο καιρο ηταν γαματος. Βρίσκεται στην έκδοση 2009 η οποία υποστηρίζεται πλήρως από την νέα εταιρία (ET) που αγόρασε την εταιρία κατασκευής του CodeGear. Η έκδοση αυτή υποστηρίζει επίσης πλήρως Unicode. Τεχνολογικά βασίζεται στην βιβλιοθήκη γρήγορου οπτικού προγραμματισμού VCL που χρησιμοποιεί η γνωστή σε όλους μας Delphi. Το περιβάλλον εργασίας του (IDE) είναι εξαιρετικά ισχυρό τόσο σε επίπεδο editor όσο και σε επίπεδο σχεδίασης φόρμας (ενοποιημένα). Ο compiler του υποστηρίζει την ανάπτυξη κώδικα σε C/C++, υποστηρίζονται όλες οι τεχνολογίες COM/ActiveX. Η σύνδεση της C και C++ με την βιβλιοθήκη οπτικού προγραμματισμού VCL είναι διάφανη (θες να αλλάξεις το περιεχόμενο ενός Edit control; Λες myEdit->Text = “Text”; και είσαι έτοιμος). Επίσης μπορείς να χρησιμοποιήσεις άμεσα κάθε ρουτίνα του Windows API. Τέλος μαζί του έρχεται ένας πολύ ισχυρός Debugger με ενσωματωμένο memory-checker (Code Guard) ώστε να πιάνεις αυτόματα τις περισσότερες περιπτώσεις σφαλμάτων διαχείρισης μνήμης. Σε γενικές γραμμές ο C++ Builder είναι μακράν το ισχυρότερο εργαλείο γρήγορου οπτικού προγραμματισμού για native (όχι .NET δηλαδή) Windows εφαρμογές σε C/C++. Στα αρνητικά του τώρα.. οι τελευταίες εκδόσεις έχουν ορισμένα προβλήματα σταθερότητας στο IDE τα οποία αντιμετωπίζονται με την προσθήκη updates. Ενώ σίγουρα έχει λιγότερα παραδείγματα χρήσης από ότι το δημοφιλέστατο MFC. Όποιος θέλει να ρίξεις μια ματιά στην ελεύθερη (trial) έκδοση 2006 (ονομάζεται Turbo C++ Explorer –ως φόρος τιμής στην παλιά γνωστή από το DOS, Turbo C++) ας δει εδώ: http://www.turboexplorer.com/ Επίσης ας κοιτάξει για διαθέσιμα updates!!
bigN Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 Πραγματικά με βοηθάνε τα πολύτιμα σχόλια σου ... σπάνια βρίσκω ανθρώπους που να ξέρουν τι λένε Έχεις δίκιο ο χρόνος είναι πολύτιμος και πλέον τα περιθώριά μου στενεύουν περισσότερο.... Αρχικά είπα να χρησιμοποιήσω το Matlab αλλά εγώ ήθελα να φτιάξω ένα GUI περιβάλλον το οποίο να έμοιαζε περισσότερο με windows εφαρμογή. Και έτσι στράφηκα στη συνέχεια στη C# όπου και είχα καποια εμπειρία. Btw μπορεις να χρησιμοποιησεις c++ με .ΝΕΤ αν αυτο σε ενδιαφερει. Η να βρεις καποιο αλλο παραθυρικο framework οπως Qt, wxWidgets.. ολα αυτα εχουν συζητηθει σε προηγουμενα ποστς αυτου του θρεντ. Αν είναι να χρησιμοποιήσω τελικά τη NET υπάρχει λόγος να χρησιμοποιήσω τη C++.NET? Το να επιλέξω μία γλώσσα είναι μεγάλο μανίκι Απλα αυτο που θα πρεπει τελικα να σκεφτεις ειναι ΠΟΣΟ χρονο θα σου παρει να μαθεις τη καθε γλωσσα/framework και ΠΟΣΟ χρονο θα σου παρει να υλοποιησεις αυτο που θες με την εκαστοτε γλωσσα/framework Γιαυτό ακριβως το λόγο βρίσκομαι εδώ ... αυτή τη στιγμή δεν μπορώ να αξιολογήσω πόσο χρόνο θα μου πάρει πχ VS C++ και αν είναι τελικά να χρησιμοποιήσω την C++ με τι framework Να παω.... όλα αυτά είναι προς σκέψη τώρα, και πιστεύω με τη βοήθειά σας θα βγάλω καποια άκρη. Το gui των εφαρμογων σου πως το φανταζεσαι? Ποσο περιπλοκο? Εχεις δει κανενα παρομοιο προγραμμα? Ακριβώς το ίδιο δεν έχω βρεί αλλά κάτι παραπλήσιο όσον αφορά το gui τουλάχιστον http://www.iecm-online.com/ Ο φίλος μου είναι πορωμένος με τη Delphi.... θα χαρεί ιδιαίτερα όταν ακούσει τα σχόλιά σου. Από την άλλη δεν έχει ασχοληθεί ποτέ με τη C++ και δεν μπορεί να βοηθήσει. Στα αρνητικά του τώρα.. οι τελευταίες εκδόσεις έχουν ορισμένα προβλήματα σταθερότητας στο IDE τα οποία αντιμετωπίζονται με την προσθήκη updates. Ενώ σίγουρα έχει λιγότερα παραδείγματα χρήσης από ότι το δημοφιλέστατο MFC. Πρέπει να σημειώσω ότι δεν είμαι φανατικός της Microsoft απλά έτυχε να ασχοληθώ με τη VS για κάτι μικρές εφαρμογές για PDA όπου η Borland ήταν ανύπαρκτη. Το να επιλέξω το κατάλληλο περιβάλλον είνια πολύ σημαντικό και τελικά το παντρεύεσαι.... από την άλλη όταν δεν υπάρχουν αρκετά παραδείγματα μπορεί να αποτελέσει μεγάλο πρόβλημα και χάσιμο χρόνου στην αντιμετώπιση μικρών προβλημάτων. Έχεις χρησιμποιήσει και άλλα framework για τη C++?
georgemarios Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 λοιπον, στη θεση σου θα πηγαινα για .ΝΕΤ οπου υπηρχε ετοιμος κωδικας σε c++ θα καθομουν να τον μετατρεψω σε .NET Υπαρχει βεβαια και η δυναντοτητα να καλεσεις c++ κωδικα μεσα απο το .NET ας πουμε κανοντας τον dll.... Δε ξερω για τι μεγεθη μιλαμε βεβαια. Anyway, oταν αντιμετωπισεις προβλημα με τη μεταφορα του κωδικα απο τη μια γλωσσα στην αλλη, εδω ειμαστε για βοηθεια
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.