Microsoft Foundation Class Library - 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 | docs |
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
- Active Template Library (ATL)
- JUCE
- Qt
- Standardmallbibliotek (STL)
- Windows mallbibliotek (WTL)
- WxWidgets
Referenser
Vidare läsning
- Prosise, Jeff (1999). Programmering av Windows med MFC (2 ed.). Microsoft Press . ISBN 9781572316959.
- Shepherd, George (1996). MFC Internals (7 utg.). Addison-Wesley . ISBN 9780201407211.
- Kruglinski, David (1997). Inside Visual C ++ (4 utg.). Microsoft Press . ISBN 9781572315655.
- Microsoft (1995). Microsoft Visual C ++: Programmering med MFC (2 red.). Microsoft Press . ISBN 9781556159213.
externa länkar
- De senaste nedladdningarna av Visual C ++ - 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