Microsoft Foundation Class Library - Microsoft Foundation Class Library

Microsoft Foundation Class Library
Utvecklare Microsoft
Initial release 1992 ; 29 å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-applikationer

Microsoft Foundation Class Library (MFC) är ett C ++ -objektorienterat bibliotek för utveckling av skrivbordsprogram för Windows .

MFC introducerades av Microsoft 1992 och fick snabbt utbredd användning. Medan Microsoft har introducerat alternativa applikationsramar sedan dess, är MFC fortfarande mycket utbredd.

Historia

MFC introducerades 1992 med Microsofts C/C ++ 7.0- kompilator för användning med 16-bitarsversioner av Windows som en extremt tunn objektorienterad 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 det sällan direkta Windows API -anrop. Istället skapar program objekt från Microsoft Foundation Class -klasser och anropar medlemsfunktioner som tillhör dessa objekt. Många av dessa funktioner delar sina namn med motsvarande API -funktioner.

En egenskap hos MFC är användningen av "Afx" som prefix för många funktioner, makron och standardförkompilerat rubriknamn "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 släppcykeln 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 släppte 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 band och tillhörande UI -widgets , helt anpassningsbara verktygsfält , dockningsfönster som antingen kan fritt flyttas eller dockas till valfri sida och dokumentflikar .

MFC var ursprungligen en funktion i de kommersiella versionerna av Visual Studio. Som sådan ingår det inte i freeware Visual C ++ Express . Den Community Edition av Visual Studio , som infördes 2014, men innehåller 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 -utveckling och licensierade distributionen av MFC -rubriker, bibliotek och DLL -filer från Microsoft under en kort tid, även om det aldrig erbjöd fullt 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 sveper delar av Windows API i C ++ klasser , bland annat funktioner som gör det möjligt för dem att använda en standard programramverket . Klasser definieras för många av de handtag -hanterade Windows -objekten och även för fördefinierade fönster och vanliga kontroller.

Vid tidpunkten för dess införande, MFC tillgänglig C ++ makron för Windows-meddelande-hanterings (via Kartor Message), undantag , run-time-identifierings (RTTI), serialisering och dynamisk klass instansiering. Makron för meddelandehantering syftade till att minska minneskonsumtionen genom att undvika onödig virtuell tabellanvändning och också att ge en mer konkret struktur för olika Visual C ++-verktyg för redigering och manipulering av kod utan att analysera hela språket. Meddelanden som hanterar makron ersatte den virtuella funktionsmekanismen från 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 slå in språkfunktionerna istället för att tillhandahålla anpassade implementeringar, för att uppnå kompatibilitet uppåt.

Med MFC -bandresursredigeraren kan utvecklaren utforma 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 bandutveckling efter behov. 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 funktionaliteten tillhandahålls i nya klasser så att gamla applikationer fortfarande fortsätter att köras. Denna uppdatering bygger ovanpå BCGSoft s BCGControlBar Library Professional Edition. Microsoft har infört ytterligare licensieringskrav för användare av band. Dessa inkluderar ett krav på att följa Microsoft UI Design Guidelines och en konkurrensbegränsande klausul som förbjuder användning av UI i applikationer som konkurrerar med Microsoft Office .

MFC kan användas genom att länka ett statiskt bibliotek eller lägga till MFC -DLL: n .

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 utvecklingsplattform 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 originalversionen av Windows 98 ) Mars 1998
eMbedded 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
eMbedded 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 omfördelning 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 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 Update 5+ KB3179560 12.0.40660.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 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 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 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.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
Microsoft Visual C ++ 2022 Visual C ++ 17.0.0RC mfc140.dll 14.30.30704.0 13 oktober 2021

Se även

Referenser

Vidare läsning

externa länkar