Windows MFC Programmierung (Anfängerfrage)



  • Hallo!

    Ich beschäftige mich gerade mit der C++ Programmierung unter Windows und hätte mal noch 2 Fragen die mir noch nicht ganz Klar sind:

    1. Ich hab hier Irgendwo im Forum gelesen, dass es empfehlenswert sei sich bei der Windows Programmierung auf C++ / CLR (.NET) zu konzentrieren, da eine Windows Programmierung mit MFC sehr schwierig sei. Und da interessiert mich dann aber doch wie man das dann vorher (also vor der Zeit von .NET) gemacht hatte. Damals waren ja auch Einsteigerbücher zur C++ Programmierung unter Windows erhältlich und die Sprache war ja auch weiter verbreitet… was ist den dan mit MFC denn so schwierig?

    2. Ich wollte außerdem noch wissen ob eine .dll Datei auch auf das .NET bezogen ist, oder ob diese immer nativ die Funktionen zur Verfügung stellen (Wenn ich das jetzt mal so ausdrücken darf)

    Danke für Eure Hilfe



  • Die MFC ist (grob gesagt) nur ein C++ Wrapper der WinAPI und basiert designtechnisch noch auf einem älteren C++ Standard (C++ 98).

    C++/CLI ist jedoch nur als Interop zwischen managed (.NET) und unmanaged (native) gedacht, niemals zur Anwendungsentwicklung s.a. Windows Forms und Visual C++ MACHT KEINEN SINN!

    Zur GUI-Programmierung mit nativem C++ werden daher meistens andere (modernere) Frameworks benutzt: [HOWTO] Welches Toolkit für GUIS?

    Und bei DLLs muß man zwischen 2 verschiedenen Typen unterscheiden:

    • native DLLs (z.B. in C oder C++)
    • managed DLLs (auch "Assemblies" genannt) für .NET
      Diese sind nicht direkt kompatibel und müssen unterschiedlich (je nach Projekttyp) eingebunden werden.


  • Ob MFC schwierig ist, kann ich nicht sagen. Ich benutze es nicht, da ich die C-Windowsapi benutze. MFC gab's zu der Zeit, wo ich Windows gelernt habe, noch nicht. Ich empfehle Dir aber ein Frameworks zu suchen, das plattformübergreifend arbeitet. QT erscheint mir sehr sinnvoll. Das wxWidget ist aber auch nicht schlecht.



  • Zum Thema C++/CLI das was @Th69 schon geschreiben hat.
    Wie man das früher machte? Entweder "mit Hand" (=einfach direkt die WinAPI verwenden) oder mit MFC oder einem der anderen Frameworks die es so gibt.
    Was MFC und schwierig angeht - so schwierig ist das nicht, vorausgesetzt man kann schonmal halbwegs C++ und findet sich damit ab dass MFC recht altmodisches und eigensinniges C++ verwendet.
    Was bei MFC eher doof ist ist dass es nicht besonders mächtig ist.

    Und was DLLs angeht: es gibt sowohl native DLLs als auch .NET DLLs.



  • Vielleicht helfen dir u.a. meine alten Tutorials beim Einstieg in MFC:
    https://www.henkessoft.de/C++/MFC/MFC Tutorials.htm


Anmelden zum Antworten