Einsteigerfrage zu MFC



  • Die Win-API ist doch die Windows Schnittstelle und MFC eine Bibliothek die diese Schnittstelle nutzt?
    Also im Moment beschäftige ich mich eg mehr noch mit reinem C++ um das erst mal besser zu können, habe jedoch auch schon bisschen mit Qt herumgespielt.
    Aber wenn ich dann mal richtig anfange mit GUI's und so würd ich gern bei einer Bibliothek bleiben, da es mir auch reichen würde nur für Windows zu programmiere, könnte ich mir auch gut vorstellen die MFC zu nehmen.
    Jetzt wollt ich mal fragen was ihr davon haltet ob MFC empfehlenswert ist und vor allem welche IDE soll ich nutzen?
    Geht das auch mit Code-Blocks oder muss ich dann Visual Studio nehmen( ist doch nicht kostenlos oder? ) ?
    Und gibts für MFC auch so ein Tool wie den Qt-Designer um sich die Oberfläche zusammen zu klicken?
    Und was empfiehlt sich um MFC zu erlernen? Bücher oder Online Tutorials?

    Schonmal vielen Dank im voraus=)

    Gruß freeG


  • Mod

    Wenn Du die MFC nutzen willst empfiehlt sich eindeutig Visual Studio 2010. (Nicht Express!).

    1. Gibt hier wieder einen guten Classwizard.
    2. Erweiterungen der MFC die seit VC-2008 SP1 auch verfügbar sind.



  • Ok, aber Visual Studio 2010( nicht express ) kostet doch oder etwa nicht?
    Kannst du die MFC empfehlen?

    Dann noch ne Frage, was ist eigentlich Visual C++ und was ist das C++/Cli und was genau ist .NET, aus dem Wiki werd ich net so schlau, und C#?

    Danke schonmal

    Gruß freeG



  • Martin Richter schrieb:

    Wenn Du die MFC nutzen willst empfiehlt sich eindeutig Visual Studio 2010. (Nicht Express!).

    In den Expressversionen ist die MFC nicht dabei, d.h. du musst schon zu den Vollversionen greifen oder tricksen viá SDKs mit impliziter MFC.



  • Ja gibt es denn so was um die Oberfläche zusammen zu klicken?
    Könnt ihr mir denn MFC empfehlen, oder eher nur abraten?
    Oder sollte man eher direkt die Win-API verwenden?
    Und vor allem, was ist denn nun dieses Visual C++ und was ist C++/ClI und C# und das .Net?

    Hoffe könnt mir noch ein bisschen helfen

    Danke gruß freeG



  • fr33g schrieb:

    Könnt ihr mir denn MFC empfehlen, oder eher nur abraten?

    Nur abraten. Die MFC ist wohl mehr etwas für den professionellen Einsatz, für Hobbyprojekte nimm besser Qt oder wxWidgets. Da kommt man einerseits schneller rein und andererseits laufen die dann auch unter Mac/Linux. (Davon mal abgesehen: ohne VS Professional wirds eh nix.)



  • Ok und kann mir trotzdem jemand die oben genannten Begriffe kurz ma erläutern?

    Danke gruß freeG



  • Visual C++ ist integrierter Teil von Visual-Studio, also keine eigene Sprache, sondern die Oberfläche zur Entwicklung von C++-Programmen.

    C++/CLI und .Net sind eigentlich dasselbe. Hier handelt es sich um sogenannten "managed Code". Dabei werden sogenannte Assemblies als Teil des Codes verwendet, die zur Laufzeit vom Interpreter übersetzt werden. Der C++/CLI beinhaltet eine eigene Speicherverwaltung auf dem Heap, die nicht mehr benötigte Objekte automatisch zerstört (Garbage Collection).

    C# ist eine von Microsoft entwickelte Sprache, die speziell auf die Verwendung von Windows Forms ausgerichtet ist und eine eigene Syntax hat. Auch C# hat eine intelligente Speicherverwaltung, sodass man sich um das Aufräumen des Heap nicht kümmern muß

    Mfg

    Wilfried



  • Ok, danke schön für die Antwort=)
    Jetzt versteh ich das.

    Und könnt mir nun MFC empfehlen oder eher abraten?

    Danke schonmal

    Gruß freeG



  • Ich kann dir MFC nur empfehlen. Wenn du dich eingearbeitet hast, wirst du sie nicht mehr missen wollen.

    Mfg

    Wilfried



  • Ok erst mal Danke für die Antwort=)

    Welche Lizenz hast du denn genommen?

    Ja ich finde einfach Qt, gefällt mir nicht so ganz, weiß auch net warum, find auch blöd dass es für alles eigene Klassen gibt, auch wenns in der STL vorhanden ist, sprich Vector, String und so weiter.

    Über weitere Empfehlungen würd ich mich natürlich freuen.

    Gruß freeG



  • Ich hatte in der Vergangenheit immer die Standard-Version, jetzt die Professional, da es Standard nicht mehr gibt.

    Mfg

    Wilfried



  • Und könnt mir nun MFC empfehlen oder eher abraten?

    So ne allgemeine Einschaetzung wird keiner richtig abgeben können.

    Als "ernsthafter" C++ programmierer sollte man recht schnell mit jeglicher GUI Bibliothek klarkommen.

    MFC hat auch Ihre Vorteile, aber IMHO gehoert die Einsteigerfreundlichkeit ned dazu. Das natuerlich auch Geschmackssache, aber ich empfinde QT und wxWidgets beispielsweisse als intuitiver. Das wuerd ich Einsteigern eher empfehlen.

    MFC waehlen wir, z.b. wenn das geruesst recht duenn um die winapi sein muss. Man also viele WinAPI Aufrufe expliziet tun muss.
    Wenn man modular Windows-Ressourcen okupieren und benutzen muss ... beispielsweisse sowas wie controls baust, die sich in nem von einer Hostapplikation verwalteten HWnd zeichnen muessen ...
    etc.

    Zu den libs / dlls
    man kann auch die c++ runtime statisch linken (unabhaengig dann von der redistributable)
    man kann auch andere GUI libs statisch linken.
    Das einzige was man ned statisch linken kann, iss die WINAPI selber ^^ also ne kernel.dll, gui.dll etc muss deine App meistens noch finden.
    Also ich hab scho Apps unter qt geschrieben, die liefen anstandslos unter allem, was ansatzweisse nach windows roch, (also kernel.dll, gui.dll ... ) und "Portable Executable" dateien ausfuehren kann, Intel Architektur mal vorrausgesetzt.
    Fuer andere Plattformen haett mans neu uebersetzen muessen.
    Allerding iss dann nen simples grafisches "Hallo World" auch mal 20-30 Mb gross ^^

    Wenn dich bissi mit kompilieren / linken auskennst, kannst die abhaengigkeiten schon auf wenige dlls der WINAPI schon runnersetzen.

    Natuerlich musst dann die verwendetetn 3d party Libs meist selber kompilieren.

    Ob das immer der heilige Gral iss, iss ne andere sache.

    Wenn man weiss wie, und das zielsystem ned bis zur hoffnungslosigkeit verbogen ist, kann man fast alles aus einem verzeichniss starten (impliziet mit eigener dynamischer version der c++ runtime)

    Ciao ...


Anmelden zum Antworten