Microsoft Foundation Class Library
Utvecklare | Microsoft |
---|---|
Initial release | 1992 |
Stabil frisättning | 14.22.27821.0 / 24 juli 2019 |
Skrivet i | C++ |
Operativ system | Microsoft Windows |
Licens | Proprietär |
Hemsida |
Microsoft Foundation Class Library (MFC) är ett C++ objektorienterat bibliotek för utveckling av skrivbordsapplikationer för Windows .
MFC introducerades av Microsoft 1992 och fick snabbt stor användning. Medan Microsoft har introducerat alternativa ramverk för tillämpningar sedan dess, är MFC fortfarande flitigt använt.
Historia
MFC introducerades 1992 med Microsofts C/C++ 7.0- kompilator för användning med 16-bitarsversioner av Windows som ett extremt tunt objektorienterat C++-omslag för Windows API. C++ började precis ersätta C för utveckling av kommersiell applikationsprogramvara vid den tiden. I ett MFC-program behövs sällan direkta Windows API- anrop. Istället skapar program objekt från Microsoft Foundation Class-klasser och anropar medlemsfunktioner som hör till dessa objekt. Många av dessa funktioner delar sina namn med motsvarande API-funktioner.
En egenhet med MFC är användningen av "Afx" som prefix för många funktioner, makron och det vanliga förkompilerade huvudnamnet "stdafx.h". Under tidig utveckling kallades det som blev MFC "Application Framework Extensions" och förkortades "Afx". Namnet Microsoft Foundation Classes (MFC) antogs för sent i utgivningscykeln för att ändra dessa referenser.
MFC 8.0 släpptes med Visual Studio 2005 . MFC 9.0 släpptes med Visual Studio 2008. Den 7 april 2008 Microsoft en uppdatering av MFC-klasserna som en out-of-band-uppdatering till Visual Studio 2008 och MFC 9. Uppdateringen innehåller nya användargränssnittskonstruktioner, inklusive banden och tillhörande UI- widgets , helt anpassningsbara verktygsfält , dockningsrutor som antingen kan flyttas fritt eller dockas till valfri sido- och dokumentflikar .
MFC var från början en del av de kommersiella versionerna av Visual Studio. Som sådan ingår det inte i gratisprogrammet Visual C++ Express . Community -utgåvan av Visual Studio , som introducerades 2014, inkluderar dock MFC.
Object Windows Library (OWL), designad för användning med Borlands Turbo C++- kompilator, var en konkurrerande produkt som introducerades av Borland ungefär samtidigt. Så småningom avbröt Borland OWL-utvecklingen och licensierade distributionen av MFC-huvuden, bibliotek och DLL-filer från Microsoft under en kort tid, även om det aldrig erbjöd helt integrerat stöd för MFC. Borland släppte senare Visual Component Library för att ersätta OWL-ramverket.
Funktioner
MFC är ett bibliotek som omsluter delar av Windows API i C++- klasser , inklusive funktionalitet som gör att de kan använda ett standardprogramramverk . Klasser är definierade för många av de handtagshanterade Windows-objekten och även för fördefinierade fönster och vanliga kontroller.
Vid tidpunkten för introduktionen tillhandahöll MFC C++ -makron för Windows-meddelandehantering (via Message Maps ), undantag , runtime type identification (RTTI), serialisering och dynamisk klassinstansering. Makron för meddelandehantering syftade till att minska minnesförbrukningen genom att undvika onödig virtuell tabellanvändning och även att tillhandahålla en mer konkret struktur för olika Visual C++-levererade verktyg för att redigera och manipulera kod utan att analysera hela språket. Makron för meddelandehantering ersatte den virtuella funktionsmekanismen som tillhandahålls av C++.
Makron för serialisering, undantag och RTTI föregick tillgängligheten av dessa funktioner i Microsoft C++ med ett antal år. 32-bitarsversioner av MFC, för Windows NT 3.1 och senare Windows-operativsystem, använde kompilatorer som implementerade språkfunktionerna och uppdaterade makron för att helt enkelt omsluta språkfunktionerna istället för att tillhandahålla anpassade implementeringar, vilket förverkligade kompatibilitet uppåt.
MFC-bandresursredigeraren tillåter utvecklaren att designa menyfliksområdet grafiskt istället för att behöva använda den XML -baserade deklarativa markeringen som RibbonX API . Alternativt kan bandkomponenter programmeras direkt genom att anropa en ny uppsättning bandklassmetoder. Utvecklaren kan blanda grafisk och programmatisk ribbon-utveckling när det är lämpligt. MFC-programguiden har också uppgraderats för att stödja de nya funktionerna, inklusive en kryssruta för att välja om programmet ska använda menyfliksområdet eller dockningsrutorna. Den nya funktionen tillhandahålls i nya klasser så att gamla applikationer fortfarande fortsätter att köras. Den här uppdateringen bygger på BCGSofts BCGControlBar Library Professional Edition. Microsoft har infört ytterligare licenskrav för användare av banden. Dessa inkluderar ett krav på att följa Microsofts riktlinjer för design av användargränssnitt och en konkurrensbegränsande klausul som förbjuder användningen av användargränssnittet i applikationer som konkurrerar med Microsoft Office .
MFC kan användas genom att länka ett statiskt bibliotek eller genom att lägga till MFC DLL .
Versioner
Produkt | Bibliotek | Version | Utgivningsdatum | |
---|---|---|---|---|
namn | Version | |||
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 (senaste utvecklingsplattformen 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 ingår i Windows 95 ) | augusti 1995 |
Visual C++ 4.1 | mfc40.dll | MFC 4.1 | ||
Visual C++ 4.2 | mfc42.dll | MFC 4.2 (mfc42.dll ingår i den ursprungliga versionen av Windows 98 ) | mars 1998 | |
Inbäddad Visual C++ 3.0 | mfc42.dll | MFC 4.2 | ||
Microsoft Visual C++ 5.0 | Visual C++ 5.0 | mfc42.dll | MFC 4.21, en stor uppgradering från MFC 4.2. | |
Microsoft Visual C++ 6.0 | Visual C++ 6.0 | mfc42.dll | MFC 6.0 | 1998 |
Inbäddad 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 februari 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 augusti 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 (ingår i redist 8.0.61000/8.0.61001) | 14 juni 2011 | ||
Visual C++ 2005 SP1 + MS11-025 (KB2643995) | 8.0.50727.6229 | 2021-01-25? | ||
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 med Feature Pack | 9.0.30411 | 22 april 2008 | ||
Visual C++ 2008 SP1 | 9.0.30729.1 | 11 augusti 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 (installationsprogrammet har 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 mars 2011 | ||
Visual C++ 2010 SP1 + MS11-025 (KB2565063) | 10.0.40219.325 | 9 augusti 2011 | ||
Microsoft Visual C++ 2012 | Visual C++ 2012 (Visual C++ 11.0) | mfc110.dll | 11.0.50727.1 | 12 september 2012 |
Visual C++ 2012-uppdatering 1 | 11.0.51106.1 | 26 november 2012 | ||
Visual C++ 2012-uppdatering 3 | 11.0.60610.1 | 26 juni 2013 | ||
Visual C++ 2012-uppdatering 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-uppdatering 2 | 12.0.30501.0 | 12 maj 2014 | ||
Visual C++ 2013-uppdatering 5 + KB3138367 | 12.0.40649.5 | februari 2016? | ||
Visual C++ 2013-uppdatering 5 + KB3179560 | 12.0.40660.0 | 8 juli 2016 | ||
Visual C++ 2013-uppdatering 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-uppdatering 1 | 14.0.23506.0 | 30 november 2015 | ||
Visual C++ 2015-uppdatering 2 | 14.0.23918.0 | 30 mars 2016 | ||
Visual C++ 2015-uppdatering 3 | 14.0.24210.0 | 27 juni 2016 | ||
Visual C++ 2015-uppdatering 3 | 14.0.24212.0 | 18 augusti 2016 | ||
Visual C++ 2015-uppdatering 3 + KB3165756 | 14.0.24215.1 | 15 september 2016 | ||
Visual C++ 2015-uppdatering 3 | 14.0.24516.0 | 23 oktober 2021 | ||
Microsoft Visual C++ 2017 | Visual C++ 15.0 | mfc140.dll | 14.10.25008.0 | 7 mars 2017 |
Visual C++ 15.1? | 14.10.25017.0 | 5 april 2017? | ||
Visual C++ 15.2 | 14.11.25325.0 | 10 maj 2017 | ||
Visual C++ 15.4 | 14.12.25810.0 | 9 oktober 2017 | ||
Visual C++ 15.6 | 14.13.26020.0 | 5 mars 2018 | ||
Visual C++ 15.7 | 14.14.26405.0 | 7 maj 2018 | ||
Visual C++ 15.7.3? | 14.14.26429.4 | 31 maj 2018 | ||
Visual C++ 15.8 | 14.15.26706.0 | 14 augusti 2018 | ||
Visual C++ 15.9 | 14.16.27012.6 | 13 november 2018 | ||
Visual C++ 15.9.5 | 14.16.27024.1 | 8 januari 2019 | ||
Visual C++ 15.9.6 | 14.16.27026.1 | 24 januari 2019 | ||
Visual C++ 15.9.9 | 14.16.27027.1 | 12 mars 2019 | ||
Visual C++ 15.9.15 | 14.16.27033.0 | 13 augusti 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 maj 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 december 2019 | ||
Visual C++ 16.5.0 | 14.25.28508.3 | 16 mars 2020 | ||
Visual C++ 16.6.0 | 14.26.28720.3 | 19 maj 2020 | ||
Visual C++ 16.6.3 | 14.26.28808.1 | 30 juni 2020 | ||
Visual C++ 16.7.0 | 14.27.29016.0 | 5 augusti 2020 | ||
Visual C++ 16.7.5 | 14.27.29112.0 | 29 september 2020 | ||
Visual C++ 16.7.8 | 14.27.29114.0 | 10 november 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 mars 2021 | ||
Visual C++ 16.9.2 | 14.28.29913.0 | 16 mars 2021 | ||
Visual C++ 16.9.4 | 14.28.29914.0 | 13 april 2021 | ||
Visual C++ 16.10.0 | 14.29.30037.0 | 25 maj 2021 | ||
Visual C++ 16.10.2 | 14.29.30038.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 augusti 2021 | ||
Visual C++ 16.11.4 | 14.29.30135.0 | 5 oktober 2021 | ||
Visual C++ 16.11.9 | 14.29.30319.0 | 11 januari 2022 | ||
Microsoft Visual C++ 2022 | Visual C++ 17.0.0RC | mfc140.dll | 14.30.30704.0 | 13 oktober 2021 |
Visual C++ 17.0.5 | 14.31.30708.0 | 14 januari 2022 | ||
Visual C++ 17.1.0 | 14.31.30818.0 | 27 oktober 2021 | ||
Visual C++ 17.1.0 | 14.31.30919.0 | 23 december 2021 | ||
Visual C++ 17.1.0 | 14.31.31005.0 | 26 januari 2022 | ||
Visual C++ 17.1.0 | 14.31.31103.0 | 26 januari 2022 | ||
Visual C++ 17.2.0 | 14.32.31302.0 | 17 mars 2022 | ||
Visual C++ 17.2.0 | 14.32.31326.0 | 9 april 2022 | ||
Visual C++ 17.2.5 | 14.32.31332.0 | 1 juli 2022 | ||
Visual C++ 17.4.0 | 14.34.31931.0 | 9 november 2022 | ||
Visual C++ 17.4.5 | 14.34.31938.0 | 14 februari 2023 |
Se även
- Active Template Library (ATL)
- GLib
- GTK
- gtkmm
- JUCE
- Qt
- Standard Template Library (STL)
- Windows mallbibliotek (WTL)
- WxWidgets
Anteckningar
Vidare läsning
- Prosise, Jeff (1999). Programmera Windows med MFC (2 uppl.). Microsoft Press . ISBN 9781572316959 .
- Shepherd, George (1996). MFC Internals (7 uppl.). Addison-Wesley . ISBN 9780201407211 .
- Kruglinski, David (1997). Inuti Visual C++ (4 uppl.). Microsoft Press . ISBN 9781572315655 .
- Microsoft (1995). Microsoft Visual C++: Programmering med MFC (2 uppl.). Microsoft Press . ISBN 9781556159213 .
externa länkar
- De senaste Visual C++-nedladdningarna som stöds - Microsoft
- Var kan jag ladda ner Visual C++ Redistributables? - Microsoft
- MSDN MFC-referens - Microsoft
- MFC: Visual Studio 2005 and Beyond - Microsoft
- En inblick i nästa generation av Visual C++ (täcker de stora MFC 9-uppdateringarna) - Microsoft