Microsoft Foundation klasser

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 29. december 2020; checks kræver 2 redigeringer .

Microsoft Foundation Classes (MFC)-pakken er et C++ - bibliotek udviklet af Microsoft og designet til at lette udviklingen af ​​GUI- applikationer til Microsoft Windows ved at bruge et rigt sæt af biblioteksklasser.

Sådan virker det

MFC-biblioteket gør det, ligesom dets hovedkonkurrent, Borland VCL , det nemmere at arbejde med GUI'en ved at skabe en applikationsramme  - et "skelet"-program, der automatisk oprettes i henhold til et givet interface-layout og fuldstændig overtager rutinehandlingerne for dets vedligeholdelse (behandling af vindueshændelser, overførsel af data mellem interne elementbuffere og programvariable osv.). Efter generering af applikationsrammen behøver programmøren kun at indtaste koden på steder, hvor der kræves særlige handlinger. Rammen skal have en veldefineret struktur, så Visual C++ giver guider til at generere og ændre den.

Derudover giver MFC et objektorienteret lag af wrappers ( engelsk  wrappers ) over mange af Windows API -funktionerne , hvilket gør arbejdet med dem noget mere bekvemt. Dette lag repræsenterer en masse objekter indbygget i systemet (vinduer, widgets , filer osv.) i form af klasser og tager sig igen af ​​rutinehandlinger som at lukke deskriptorer og allokere/frigøre hukommelse.

Tilføjelse af kode til Application Framework

Tilføjelse af applikationskode til rammen implementeres på to måder. Den første bruger arvemekanismen : rammens vigtigste programstrukturer præsenteres i form af klasser, der er nedarvet fra bibliotekets. Disse klasser giver mange virtuelle funktioner kaldet på bestemte punkter i programmet. Ved at omdefinere (i de fleste tilfælde er det nødvendigt at kalde en funktion af basisklassen) disse funktioner, kan programmøren tilføje eksekvering på disse punkter i sin kode.

Den anden metode bruges til at tilføje vindueshændelseshandlere. Guiden opretter specielle arrays inden for rammerne af klasser forbundet med windows - kort over (vindue) meddelelser ( eng.  message map ), der indeholder par af "meddelelses-id - pointer to handler". Når du tilføjer/fjerner en handler, foretager guiden ændringer i det tilsvarende meddelelseskort.

Historie

Den første version af MFC blev udgivet med version 7 af Microsofts 16-bit C/C++ compiler i 1992. For dem, der udviklede applikationer ved hjælp af API -funktioner, lovede MFC-pakken en meget betydelig stigning i produktiviteten af ​​programmeringsprocessen.

Et bemærkelsesværdigt træk ved MFC er "Afx"-præfikset, der bruges i navnene på mange funktioner, makroer og navnet på standardheaderfilen "stdafx.h". På et tidligt udviklingsstadium blev det, der senere blev kendt som MFC, kaldt "Application Framework Extensions" og forkortet til "Afx". Beslutningen om at ændre navnet til Microsoft Foundation Classes (MFC) blev truffet for sent til at ændre referencer til Afx i koden.

Object Windows Library (OWL), udviklet af Borland til at køre sin egen C++ compiler , var et konkurrerende produkt, der blev introduceret i samme periode. Borland stoppede til sidst udviklingen af ​​OWL og erhvervede en kortvarig licens til at bruge MFC-bibliotekerne, men tilbød aldrig fuld MFC-support i sine produkter. Borland udgav senere VCL som erstatning for OWL.

Microsofts fokus på MFC er blevet løsnet til fordel for Microsoft .NET Framework . På trods af dette er MFC stadig populær blandt udviklere.

I april 2008 udgav Microsoft, efter mange års inaktivitet, en større opdatering til MFC kaldet MFC Feature Pack. Denne opdatering blev tilbudt til installation som en tilføjelse til Visual Studio 2008. Dybest set var disse yderligere MFC-klasser, som rettighederne til blev erhvervet fra det russiske firma BCGSoft [1] . MFC inkluderede understøttelse af den nye Ribbon -grænseflade og flere andre forbedringer relateret til forbedrede grænsefladekontroller. Siden udgivelsen af ​​Visual Studio 2008 Service Pack er disse klasser blevet en integreret del af MFC.

Versioner

Produktversion MFC version udgivelses dato
Microsoft C/C++ 7.0 MFC 1.0 1992
Visual C++ 1.0 MFC 2.0 (introduceret dokumentvisningsarkitektur )
Visual C++ 1.5 MFC 2.5 (implementeret understøttelse af ODBC og træk-og-slip- teknologier )
Visual C++ 1.52c MFC 2.5 (sidste udviklingsplatform til MS Windows 3.x)
Visual C++ 2.0 MFC 3.0 (tilsat multitasking og Unicode- understøttelse )
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll inkluderet i Windows 95) august 1995
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll inkluderet i den første udgivelse af Windows 98) marts 1998
Indlejret Visual C++ 3.0 MFC 4.2 (mfc42.dll)
Visual C++ 5.0 MFC 4.21 (mfc42.dll), en større opdatering til MFC 4.2.
Visual C++ 6.0 MFC 6.0 (mfc42.dll) 1998
Indlejret 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 februar 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) august 2008
Visual C++ 2008 [2] Sikkerhedsopdatering (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 marts 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. marts 2016
Visual C++ 2015 Update 3 (Visual C++ 14.0) MFC 14.0.24210.0 (mfc140.dll) 27. juni 2016
Visual C++ 2015-opdatering 3 + KB3165756 MFC 14.0.24212.0 (mfc140.dll) 2. august 2016
Visual C++ 2017 (Visual C++ 15.0) MFC 14.10.25008.0 (mfc140.dll), .NET 4.6.2 7. marts 2017

Noter

  1. BCGSoft: Om os . Hentet 20. april 2011. Arkiveret fra originalen 25. maj 2011.
  2. 1 2 3 4 5 MFC-biblioteket er ikke inkluderet i Visual Studio Express Edition.

Se også