Microsoft Foundation Class



  • Hi,
    immer wieder liest man, dass sich Visual Studio im Zusammenhang mit C++ nicht für GUI Programmierung eignet. Bei CppCLR_Winforms Projekten gibs es einige Gründe dafür. Aber was spricht gegen die Microsoft Foundation Class?


  • Mod

    Hast du vielleicht so einen Ratschlag wie hier zu allgemein verstanden?



  • Es geht bei der Aussage (s. Windows Forms und Visual C++ MACHT KEINEN SINN!) um C++/CLI (d.h. die Vermischung von C++ und .NET), nicht um natives C++.
    Letztes kannst du mit beliebigen reinen C++ UI-Toolkits, wie z.B. MFC, benutzen (auch wenn MFC m.E. veraltet ist, weil es nur ein einfacher Wrapper der WinAPI ist, welches nicht auf modernem C++ basiert).



  • Wenn es Visual Studio 2019 anbietet kann es doch nicht so veraltet sein. Oder wurde es gar nicht weiterentwickelt?



  • @theAnfänger77
    Das wird noch mitgeliefert um alte bestehende Programm weiter pflegen zu können. Was Neues würde ich damit nicht machen.



  • Es wird AFAIK auch noch (begrenzt) weiterentwickelt.
    Aber die Basis steht seit > 20 Jahren.
    Daran kann man nichts mehr ändern ohne dass man alle mit MFC entwickelten Programme übelst anpassen müsste. D.h. MFC wird nie wirklich schön modernes C++ werden.

    Je nachdem um was es geht würde ich MFC aber nicht grundsätzlich ablehnen. Wenn es auf Windows beschränkt ist und aus guten Gründen auf anderen Plattformen nicht möglich ist/keinen Sinn macht, und es klar ist dass das Projekt klein genug bleibt -- dann wieso nicht? MFC kommt mittlerweile mit Visual Studio Community mit, d.h. man kann damit auch Open Source Programme machen ohne dass gleich jeder Entwickler für Visual Studio Professional zahlen müsste.
    Und genau das ist eben der Vorteil: man muss dann keine externe Library einbinden nur um ein bisschen GUI zu machen. Und bevor ich mich bei einem mittelkleinen Projekt mit der nackten Win32 API für GUI rumschlage, nehm ich lieber die MFC.



  • @hustbaer sagte in Microsoft Foundation Class:

    Es wird AFAIK auch noch (begrenzt) weiterentwickelt.
    Aber die Basis steht seit > 20 Jahren.
    Daran kann man nichts mehr ändern ohne dass man alle mit MFC entwickelten Programme übelst anpassen müsste. D.h. MFC wird nie wirklich schön modernes C++ werden.

    Je nachdem um was es geht würde ich MFC aber nicht grundsätzlich ablehnen. Wenn es auf Windows beschränkt ist und aus guten Gründen auf anderen Plattformen nicht möglich ist/keinen Sinn macht, und es klar ist dass das Projekt klein genug bleibt -- dann wieso nicht? MFC kommt mittlerweile mit Visual Studio Community mit, d.h. man kann damit auch Open Source Programme machen ohne dass gleich jeder Entwickler für Visual Studio Professional zahlen müsste.
    Und genau das ist eben der Vorteil: man muss dann keine externe Library einbinden nur um ein bisschen GUI zu machen. Und bevor ich mich bei einem mittelkleinen Projekt mit der nackten Win32 API für GUI rumschlage, nehm ich lieber die MFC.

    Dem kann ich mich anschließen. Finde es super das es jetzt auch bei allen Editionen mit dabei ist. Wenn man sich einmal dran gewöhnt hat ist auch relativ schnell eine Oberfläche zusammengestellt. Die Frage ist, ob sich der Aufwand lohnt sich komplett mit der MFC zu befassen, wenn man noch gar keine Kenntnisse hat. Ich arbeite schon Jahre damit und konnte alle meine Problemstellungen umsetzen.


Log in to reply