Einsteigerfrage zu MFC
-
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 ...