Microsoft Foundation Class-Bibliothek - Microsoft Foundation Class Library

Microsoft Foundation Class-Bibliothek
Entwickler Microsoft
Erstveröffentlichung 1992 ; vor 29 Jahren ( 1992 )
Stabile Version
14.22.27821.0 / 24. Juli 2019
Geschrieben in C++
Betriebssystem Microsoft Windows
Lizenz Proprietär
Webseite docs .microsoft .com /en-us /cpp /mfc /mfc-desktop-applications

Die Microsoft Foundation Class Library (MFC) ist eine objektorientierte C++ - Bibliothek zum Entwickeln von Desktopanwendungen für Windows .

MFC wurde 1992 von Microsoft eingeführt und fand schnell breite Anwendung. Während Microsoft seitdem alternative Anwendungsframeworks eingeführt hat, bleibt MFC weit verbreitet.

Geschichte

MFC wurde 1992 mit dem C/C++ 7.0- Compiler von Microsoft zur Verwendung mit 16-Bit- Versionen von Windows als extrem dünner objektorientierter C++-Wrapper für die Windows-API eingeführt. C++ war gerade dabei, C für die Entwicklung kommerzieller Anwendungssoftware zu ersetzen . In einem MFC-Programm werden selten direkte Windows-API- Aufrufe benötigt. Stattdessen erstellen Programme Objekte aus Microsoft Foundation Class-Klassen und rufen Memberfunktionen auf, die zu diesen Objekten gehören. Viele dieser Funktionen teilen ihre Namen mit entsprechenden API-Funktionen.

Eine Eigenart von MFC ist die Verwendung von "Afx" als Präfix für viele Funktionen, Makros und den standardmäßig vorkompilierten Headernamen "stdafx.h". Während der frühen Entwicklung wurde MFC als "Application Framework Extensions" und als "Afx" abgekürzt. Der Name Microsoft Foundation Classes (MFC) wurde zu spät im Release-Zyklus übernommen, um diese Verweise zu ändern.

MFC 8.0 wurde mit Visual Studio 2005 veröffentlicht . MFC 9.0 wurde mit Visual Studio 2008 veröffentlicht. Am 7. April 2008 hat Microsoft ein Update für die MFC-Klassen als Out-of-Band-Update für Visual Studio 2008 und MFC 9 veröffentlicht. Das Update bietet neue Benutzeroberflächenkonstrukte, einschließlich der Ribbons und dazugehörige UI- Widgets , vollständig anpassbare Symbolleisten , Andockfenster, die entweder frei schweben oder an beliebige Seiten- und Dokumentregisterkarten angedockt werden können .

MFC war ursprünglich ein Feature der kommerziellen Versionen von Visual Studio. Als solches ist es nicht in der Freeware Visual C++ Express enthalten . Die 2014 eingeführte Community-Edition von Visual Studio enthält jedoch MFC.

Die Object Windows Library (OWL), die für die Verwendung mit dem Turbo C++- Compiler von Borland entwickelt wurde , war ein Konkurrenzprodukt, das etwa zur gleichen Zeit von Borland eingeführt wurde . Schließlich stellte Borland die OWL-Entwicklung ein und lizenzierte für kurze Zeit die Verteilung der MFC-Header, Bibliotheken und DLLs von Microsoft, obwohl es nie eine vollständig integrierte Unterstützung für MFC bot. Borland veröffentlichte später die Visual Component Library , um das OWL-Framework zu ersetzen.

Merkmale

MFC ist eine Bibliothek, hüllt Teile des Windows - API in C ++ Klassen , einschließlich den Funktionen , die sie einen Standard verwenden können Anwendungs - Framework . Klassen sind für viele der Handle- verwalteten Windows-Objekte und auch für vordefinierte Fenster und allgemeine Steuerelemente definiert.

Zum Zeitpunkt seiner Einführung stellte MFC C++- Makros für die Windows-Nachrichtenbehandlung (über Message Maps), Ausnahmen , Laufzeittypidentifikation (RTTI), Serialisierung und dynamische Klasseninstanziierung bereit. Die Makros für die Nachrichtenverarbeitung zielten darauf ab, den Speicherverbrauch zu reduzieren, indem sie die unnötige Verwendung virtueller Tabellen vermeiden , und auch eine konkretere Struktur für verschiedene von Visual C++ bereitgestellte Tools zum Bearbeiten und Bearbeiten von Code bereitzustellen, ohne die vollständige Sprache zu analysieren. Die Makros zur Nachrichtenbehandlung ersetzten den von C++ bereitgestellten virtuellen Funktionsmechanismus .

Die Makros für Serialisierung, Ausnahmen und RTTI waren einige Jahre älter als die Verfügbarkeit dieser Features in Microsoft C++. 32-Bit- Versionen von MFC für Windows NT 3.1 und spätere Windows-Betriebssysteme verwendeten Compiler, die die Sprachfeatures implementierten und die Makros aktualisierten, um die Sprachfeatures einfach zu umschließen, anstatt benutzerdefinierte Implementierungen bereitzustellen, um Aufwärtskompatibilität zu realisieren.

Der MFC-Menüband-Ressourceneditor ermöglicht es dem Entwickler, das Menüband grafisch zu gestalten, anstatt das XML- basierte deklarative Markup wie die RibbonX- API verwenden zu müssen . Optional können Ribbon-Komponenten direkt durch Aufrufen eines neuen Satzes von Ribbon-Klassenmethoden programmiert werden. Der Entwickler kann die grafische und programmatische Ribbon-Entwicklung nach Belieben mischen. Der MFC-Anwendungsassistent wurde ebenfalls aktualisiert, um die neuen Funktionen zu unterstützen, einschließlich eines Kontrollkästchens, um auszuwählen, ob die Anwendung das Menüband oder die Andockbereiche verwendet. Die neue Funktionalität wird in neuen Klassen bereitgestellt, sodass alte Anwendungen weiterhin laufen. Dieses Update baut auf der BCGSoft ‚s BCGControlBar Bibliothek Professional Edition. Microsoft hat den Benutzern der Farbbänder zusätzliche Lizenzanforderungen auferlegt. Dazu gehören eine Verpflichtung zur Einhaltung der Microsoft UI Design Guidelines und eine Wettbewerbsverbotsklausel, die die Verwendung der UI in Anwendungen verbietet, die mit Microsoft Office konkurrieren .

MFC kann durch Verknüpfen einer statischen Bibliothek oder durch Hinzufügen der MFC- DLL verwendet werden .

Versionen

Produkt Bücherei Ausführung Veröffentlichungsdatum
Name Ausführung
Microsoft C/C++ 7.0 mafxcw.lib MFC 1.0 1992
Microsoft Visual C++ 1.0 Visual C++ 1.0 mfc200.dll MFC 2.0
Visual C++ 1.5 mfc250.dll MFC 2.5
Visual C++ 1.51 mfc250.dll MFC 2.51
Visual C++ 1.52c mfc250.dll MFC 2.5 (Letzte Entwicklungsplattform für Windows 3.x )
Microsoft Visual C++ 2.0 Visual C++ 2.0 mfc30.dll MFC 3.0
Visual C++ 2.1 mfc30.dll MFC 3.1
Visual C++ 2.2 mfc30.dll MFC 3.2
Microsoft Visual C++ 4.0 Visual C++ 4.0 mfc40.dll MFC 4.0 (mfc40.dll in Windows 95 enthalten ) August 1995
Visual C++ 4.1 mfc40.dll MFC 4.1
Visual C++ 4.2 mfc42.dll MFC 4.2 (mfc42.dll in der Originalversion von Windows 98 enthalten ) März 1998
Eingebettetes Visual C++ 3.0 mfc42.dll MFC 4.2
Microsoft Visual C++ 5.0 Visual C++ 5.0 mfc42.dll MFC 4.21, ein wichtiges Upgrade von MFC 4.2.
Microsoft Visual C++ 6.0 Visual C++ 6.0 mfc42.dll MFC 6.0 1998
Eingebettetes Visual C++ 4.0 mfcce400.dll MFC 6.0
Microsoft Visual C++ .NET 2002 Visual C++ .NET 2002 (Visual C++ 7.0) mfc70.dll MFC 7.0 13. Februar 2002
Microsoft Visual C++ .NET 2003 Visual C++ .NET 2003 (Visual C++ 7.1) mfc71.dll MFC 7.1 24. April 2003
Visual C++ .NET 2003 + MS11-025 (KB2465373) MFC 7.10.6119.0 12. April 2011
Microsoft Visual C++ 2005 Visual C++ 2005 (Visual C++ 8.0) mfc80.dll 8.0.50727.42 10. April 2006
Visual C++ 2005 SP1 8.0.50727.762 27. August 2007
Visual C++ 2005 SP1 + MS09-035 (KB973544) 8.0.50727.4053 28. Juli 2009
Visual C++ 2005 SP1 + MS11-025 (KB2467175) 8.0.50727.5592 12. April 2011
Visual C++ 2005 SP1 + MS11-025 (KB2538242) 8.0.50727.6195 (enthalten in Redist 8.0.61000/8.0.61001) 14. Juni 2011
Microsoft Visual C++ 2008 Visual C++ 2008 (Visual C++ 9.0) mfc90.dll 9.0.21022.8 19. November 2007
Visual C++ 2008 + MS09-035 (KB973551) 9.0.21022.218 28. Juli 2009
Visual C++ 2008 mit Feature Pack 9.0.30411 22. April 2008
Visual C++ 2008 SP1 9.0.30729,1 11. August 2008
Visual C++ 2008 SP1 + MS09-035 (KB973552) 9.0.30729.4148 28. Juli 2009
Visual C++ 2008 SP1 + MS11-025 (KB2467174) 9.0.30729.5570 12. April 2011
Visual C++ 2008 SP1 + MS11-025 (KB2538243) 9.0.30729.6161 (Installer hat Version 9.0.30729.5677) 14. Juni 2011
Microsoft Visual C++ 2010 Visual C++ 2010 (Visual C++ 10.0) mfc100.dll 10.0.30319,1 12. April 2010
Visual C++ 2010 + MS11-025 (KB2467173) 10.0.30319.415 12. April 2011
Visual C++ 2010 SP1 10.0.40219.1 10. März 2011
Visual C++ 2010 SP1 + MS11-025 (KB2565063) 10.0.40219.325 9. August 2011
Microsoft Visual C++ 2012 Visual C++ 2012 (Visual C++ 11.0) mfc110.dll 11.0.50727.1 12. September 2012
Visual C++ 2012-Update 1 11.0.51106.1 26. November 2012
Visual C++ 2012-Update 3 11.0.60610.1 26. Juni 2013
Visual C++ 2012-Update 4 11.0.61030.0 13. November 2013
Microsoft Visual C++ 2013 Visual C++ 2013 (Visual C++ 12.0) mfc120.dll 12.0.21005.1 17. Oktober 2013
Visual C++ 2013 Update 2 12.0.30501.0 12. Mai 2014
Visual C++ 2013 Update 5 + KB3138367 12.0.40649.5 Februar 2016?
Visual C++ 2013 Update 5 + KB3179560 12.0.4060.0 8. Juli 2016
Visual C++ 2013 Update 5 + KB4032938 12.0.40664.0 18. Juli 2017
Microsoft Visual C++ 2015 Visual C++ 2015 (Visual C++ 14.0) mfc140.dll 14.0.23026.0 20. Juli 2015
Visual C++ 2015 Update 1 14.0.23506.0 30. November 2015
Visual C++ 2015 Update 2 14.0.23918.0 30. März 2016
Visual C++ 2015 Update 3 14.0.24210.0 27. Juni 2016
Visual C++ 2015 Update 3 14.0.24212.0 18. August 2016
Visual C++ 2015 Update 3 + KB3165756 14.0.24215.1 15. September 2016
Microsoft Visual C++ 2017 Visual C++ 15.0 mfc140.dll 14.10.25008.0 7. März 2017
Visual C++ 15.1? 14.10.25017.0 5. April 2017?
Visual C++ 15.2 14.11.25325.0 10. Mai 2017
Visual C++ 15.4 14.12.25810.0 9. Oktober 2017
Visual C++ 15.6 14.13.26020.0 5. März 2018
Visual C++ 15.7 14.14.26405.0 7. Mai 2018
Visuelles C++ 15.7.3? 14.14.26429.4 31. Mai 2018
Visual C++ 15.8 14.15.26706.0 14. August 2018
Visual C++ 15.9 14.16.27012.6 13. November 2018
Visual C++ 15.9.5 14.16.27024.1 8. Januar 2019
Visual C++ 15.9.6 14.16.27026.1 24. Januar 2019
Visual C++ 15.9.9 14.16.27027.1 12. März 2019
Visual C++ 15.9.15 14.16.27033.0 13. August 2019
Microsoft Visual C++ 2019 Visual C++ 16.0.0 mfc140.dll 14.20.27508.1 2. April 2019?
Visual C++ 16.1.0 14.21.27702.2 21. Mai 2019
Visual C++ 16.2.0 14.22.27821.0 24. Juli 2019
Visual C++ 16.3.0 14.23.27820.0 23. September 2019
Visual C++ 16.4.0 14.24.28127.4 3. Dezember 2019
Visual C++ 16.5.0 14.25.28508.3 16. März 2020
Visual C++ 16.6.0 14.26.28720.3 19. Mai 2020
Visual C++ 16.6.3 14.26.28808.1 30. Juni 2020
Visual C++ 16.7.0 14.27.29016.0 5. August 2020
Visual C++ 16.7.5 14.27.29112.0 29. September 2020
Visual C++ 16.8.0 14.28.29325.2 10. November 2020
Visual C++ 16.8.2 14.28.29334.0 19. November 2020
Visual C++ 16.9.0 14.28.29910.0 2. März 2021
Visual C++ 16.9.2 14.28.29913.0 16. März 2021
Visual C++ 16.9.4 14.28.29914.0 13. April 2021
Visual C++ 16.10.0 14.29.30037.0 25. Mai 2021
Visual C++ 16.10.2 14.29.0038.0 15. Juni 2021
Visual C++ 16.10.4 14.29.30040.0 20. Juli 2021
Visual C++ 16.11.0 14.29.30133.0 10. August 2021
Visual C++ 16.11.4 14.29.30135.0 5. Oktober 2021
Microsoft Visual C++ 2022 Visual C++ 17.0.0RC mfc140.dll 14.30.30704.0 13. Oktober 2021

Siehe auch

Verweise

Weiterlesen

Externe Links