Microsoft Foundation-kurser

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 december 2020; kontroller kräver 2 redigeringar .

Microsoft Foundation Classes (MFC)-paketet är ett C++-bibliotek utvecklat av Microsoft och utformat för att underlätta utvecklingen av GUI- applikationer för Microsoft Windows genom att använda en rik uppsättning biblioteksklasser.

Hur det fungerar

MFC-biblioteket, liksom sin huvudkonkurrent, Borland VCL , gör det lättare att arbeta med GUI genom att skapa ett applikationsramverk  - ett "skelett"-program som automatiskt skapas enligt en given gränssnittslayout och helt tar över rutinåtgärderna för dess underhåll (bearbeta fönsterhändelser, överföring av data mellan interna elementbuffertar och programvariabler, etc.). Efter att ha genererat applikationsramverket behöver programmeraren bara ange koden på platser där speciella åtgärder krävs. Ramverket måste ha en väldefinierad struktur, så Visual C++ tillhandahåller guider för att generera och ändra det.

Dessutom tillhandahåller MFC ett objektorienterat lager av omslag ( engelska  omslag ) över många av Windows API -funktioner , vilket gör att arbeta med dem något mer bekvämt. Detta lager representerar många objekt inbyggda i systemet (fönster, widgets , filer, etc.) i form av klasser och tar återigen hand om rutinåtgärder som att stänga deskriptorer och allokera/frigöra minne.

Lägga till kod i applikationsramverket

Att lägga till applikationskod till ramverket implementeras på två sätt. Den första använder arvsmekanismen : ramverkets huvudprogramstrukturer presenteras i form av klasser som ärvts från biblioteksklasser. Dessa klasser tillhandahåller många virtuella funktioner som anropas vid vissa punkter i programmet. Genom att omdefiniera (i de flesta fall är det nödvändigt att anropa en funktion av basklassen) dessa funktioner, kan programmeraren lägga till exekvering vid dessa punkter i sin kod.

Den andra metoden används för att lägga till fönsterhändelsehanterare. Guiden skapar speciella arrayer inom ramarna för klasser associerade med windows - kartor av (fönster)meddelanden ( eng.  message map ), som innehåller par av "meddelande-ID - pekare till hanterare". När du lägger till/tar bort en hanterare gör guiden ändringar i motsvarande meddelandekarta.

Historik

Den första versionen av MFC släpptes med version 7 av Microsofts 16-bitars C/C++ kompilator 1992. För dem som utvecklade applikationer med API -funktioner utlovade MFC-paketet en mycket betydande ökning av produktiviteten i programmeringsprocessen.

En anmärkningsvärd egenskap hos MFC är prefixet "Afx" som används i namnen på många funktioner, makron och namnet på standardhuvudfilen "stdafx.h". I ett tidigt utvecklingsskede kallades det som senare blev känt som MFC "Application Framework Extensions" och förkortades "Afx". Beslutet att ändra namnet till Microsoft Foundation Classes (MFC) togs för sent för att ändra referenser till Afx i koden.

Object Windows Library (OWL), utvecklat av Borland för att köra sin egen C++- kompilator , var en konkurrerande produkt som introducerades under samma period. Borland slutade så småningom utvecklingen av OWL och skaffade en korttidslicens för att använda MFC-biblioteken, men erbjöd aldrig fullt MFC-stöd i sina produkter. Borland släppte senare VCL som ersättare för OWL.

Microsofts fokus på MFC har luckrats upp till förmån för Microsoft .NET Framework . Men trots detta är MFC fortfarande populär bland utvecklare.

I april 2008 släppte Microsoft, efter år av inaktivitet, en stor uppdatering till MFC som heter MFC Feature Pack. Denna uppdatering erbjöds för installation som ett tillägg till Visual Studio 2008. I grund och botten var dessa ytterligare MFC-klasser, rättigheterna till vilka förvärvades från det ryska företaget BCGSoft [1] . MFC inkluderade stöd för det nya Ribbon -gränssnittet och flera andra förbättringar relaterade till förbättrade gränssnittskontroller. Sedan lanseringen av Visual Studio 2008 Service Pack har dessa klasser blivit en integrerad del av MFC.

Versioner

Produktversion MFC-version Utgivningsdatum
Microsoft C/C++ 7.0 MFC 1.0 1992
Visual C++ 1.0 MFC 2.0 (introducerad dokumentvisningsarkitektur )
Visual C++ 1.5 MFC 2.5 (implementerat stöd för ODBC och dra-och-släpp- teknik )
Visual C++ 1.52c MFC 2.5 (senaste utvecklingsplattformen för MS Windows 3.x)
Visual C++ 2.0 MFC 3.0 (tillagt multitasking och Unicode- stöd )
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll ingår i Windows 95) augusti 1995
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll ingår i den första versionen av Windows 98) mars 1998
Inbäddad Visual C++ 3.0 MFC 4.2 (mfc42.dll)
Visual C++ 5.0 MFC 4.21 (mfc42.dll), en stor uppdatering av MFC 4.2.
Visual C++ 6.0 MFC 6.0 (mfc42.dll) 1998
Inbäddad Visual C++ 4.0 MFC 6.0 (mfcce400.dll)
Visual C++ .NET 2002 (Visual C++ 7.0) MFC 7.0 (mfc70.dll), .NET 1.0 februari 2002
Visual C++ .NET 2003 (Visual C++ 7.1) MFC 7.1 (mfc71.dll), .NET 1.1 april 2003
Visual C++ 2005 [2] (Visual C++ 8.0) MFC 8.0 (mfc80.dll), .NET 2.0 oktober 2005
Visual C++ 2008 [2] (Visual C++ 9.0) MFC 9.0.21022 (mfc90.dll), .NET 3.5 november 2007
Visual C++ 2008 [2] med Feature Pack MFC 9.0.30411 (mfc90.dll) april 2008
Visual C++ 2008 [2] SP1 MFC 9.0.30729 (mfc90.dll) augusti 2008
Visual C++ 2008 [2] Säkerhetsuppdatering (KB971092) MFC 9.0.30729.4148 (mfc90.dll) juli 2009
Visual C++ 2010 MFC 10.0.30319.1 (mfc100.dll), .NET 4.0 april 2010
Visual C++ 2010 SP1 MFC 10.0.40219.1 (mfc100.dll), .NET 4.0 mars 2011
Visual C++ 2010 + MS11-025 MFC 10.0.30319.415 (mfc100.dll), .NET 4.0 april 2011
Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.50727.1 (mfc110.dll), .NET 4.5 26 juli 2012
Visual C++ 2012 Update 1 (Visual C++ 11.0) MFC 11.0.51106.1 (mfc110.dll), .NET 4.5 5 november 2012
Visual C++ 2012 Update 3 (Visual C++ 11.0) MFC 11.0.60610.1 (mfc110.dll), .NET 4.5 26 juli 2012
Visual C++ 2013 (Visual C++ 12.0) MFC 12.0.21005.1 (mfc120.dll), .NET 4.5.1 5 oktober 2013
Visual C++ 2013 Update 2 (Visual C++ 12.0) MFC 12.0.30501.0 (mfc120.dll), .NET 4.5.1 30 december 2014
Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23026.0 (mfc140.dll), .NET 4.6 20 juli 2015
Visual C++ 2015 Update 1 (Visual C++ 14.0) MFC 14.0.23506.0 (mfc140.dll), .NET 4.6.1 30 november 2015
Visual C++ 2015 Update 2 (Visual C++ 14.0) MFC 14.0.23918.0 (mfc140.dll) 30 mars 2016
Visual C++ 2015 Update 3 (Visual C++ 14.0) MFC 14.0.24210.0 (mfc140.dll) 27 juni 2016
Visual C++ 2015-uppdatering 3 + KB3165756 MFC 14.0.24212.0 (mfc140.dll) 2 augusti 2016
Visual C++ 2017 (Visual C++ 15.0) MFC 14.10.25008.0 (mfc140.dll), .NET 4.6.2 7 mars 2017

Anteckningar

  1. BCGSoft: Om oss . Hämtad 20 april 2011. Arkiverad från originalet 25 maj 2011.
  2. 1 2 3 4 5 MFC-biblioteket ingår inte i Visual Studio Express Edition.

Se även