Microsoft Foundation Class Library

Microsoft Foundation Class Library
Utvecklare Microsoft
Initial release 1992 ; 31 år sedan ( 1992 )
Stabil frisättning
14.22.27821.0 / 24 juli 2019
Skrivet i C++
Operativ system Microsoft Windows
Licens Proprietär
Hemsida docs .microsoft .com /en-us /cpp /mfc /mfc-desktop-applications

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

Anteckningar

Vidare läsning

externa länkar