Microsoft Foundation Class-Bibliothek - Microsoft Foundation Class Library
| Entwickler | Microsoft |
|---|---|
| Erstveröffentlichung | 1992 |
| Stabile Version | 14.22.27821.0 / 24. Juli 2019 |
| Geschrieben in | C++ |
| Betriebssystem | Microsoft Windows |
| Lizenz | Proprietär |
| Webseite | docs |
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
- Aktive Vorlagenbibliothek (ATL)
- JUCE
- Qt
- Standardvorlagenbibliothek (STL)
- Windows-Vorlagenbibliothek (WTL)
- WxWidgets
Verweise
Weiterlesen
- Prosis, Jeff (1999). Programmierung von Windows mit MFC (2 Aufl.). Microsoft-Presse . ISBN 9781572316959.
- Hirte, George (1996). MFC-Interna (7 Hrsg.). Addison-Wesley . ISBN 9780201407211.
- Kruglinski, David (1997). In Visual C++ (4 Hrsg.). Microsoft-Presse . ISBN 9781572315655.
- Microsoft (1995). Microsoft Visual C++: Programmierung mit MFC (2 Aufl.). Microsoft-Presse . ISBN 9781556159213.
Externe Links
- Die neuesten unterstützten Visual C++ - Downloads - Microsoft
- Wo kann ich Visual C++ Redistributables herunterladen? - Microsoft
- MSDN MFC-Referenz - Microsoft
- MFC: Visual Studio 2005 und höher – Microsoft
- Ein Einblick in die nächste Generation von Visual C++ (deckt die wichtigsten MFC 9-Updates ab) - Microsoft