Clasele de fundație Microsoft

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 29 decembrie 2020; verificările necesită 2 modificări .

Pachetul Microsoft Foundation Classes (MFC) este o bibliotecă C++ dezvoltată de Microsoft și concepută pentru a facilita dezvoltarea aplicațiilor GUI pentru Microsoft Windows prin utilizarea unui set bogat de clase de bibliotecă.

Cum funcționează

Biblioteca MFC, la fel ca principalul său concurent, Borland VCL , facilitează lucrul cu interfața grafică prin crearea unui cadru de aplicație  - un program „schelet” care este creat automat în conformitate cu un aspect al interfeței date și preia complet acțiunile de rutină pentru acesta. întreținere (procesarea evenimentelor din fereastră, transferul de date între tampoanele interne ale elementelor și variabilele programului etc.). După generarea cadrului aplicației, programatorul trebuie să introducă codul doar în locurile în care sunt necesare acțiuni speciale. Cadrul trebuie să aibă o structură bine definită, astfel încât Visual C++ oferă vrăjitori pentru a-l genera și modifica.

În plus, MFC oferă un strat de wrapper -uri orientate pe obiecte ( învelișuri englezești ) peste multe dintre funcțiile API Windows , ceea ce face lucrul cu acestea oarecum mai convenabil. Acest strat reprezintă o mulțime de obiecte încorporate în sistem (ferestre, widget -uri , fișiere etc.) sub formă de clase și se ocupă din nou de acțiuni de rutină precum închiderea descriptorilor și alocarea/eliberarea memoriei.  

Adăugarea codului la cadrul de aplicație

Adăugarea codului aplicației la cadru este implementată în două moduri. Primul folosește mecanismul de moștenire : principalele structuri de program ale cadrului sunt prezentate sub formă de clase moștenite din cele de bibliotecă. Aceste clase oferă multe funcții virtuale numite în anumite puncte ale programului. Prin redefinirea (în majoritatea cazurilor este necesară apelarea unei funcții din clasa de bază) a acestor funcții, programatorul poate adăuga execuție în aceste puncte din codul său.

A doua metodă este folosită pentru a adăuga handlere de evenimente ferestre. Vrăjitorul creează tablouri speciale în cadrul cadrelor de clase asociate cu windows - hărți ale mesajelor (window) ( ing.  mesaj map ), care conțin perechi de „message ID - pointer to handler”. La adăugarea/eliminarea unui handler, expertul efectuează modificări hărții de mesaje corespunzătoare.

Istorie

Prima versiune de MFC a fost lansată cu versiunea 7 a compilatorului Microsoft C/C++ pe 16 biți în 1992. Pentru cei care dezvoltau aplicații folosind funcții API , pachetul MFC promitea o creștere foarte semnificativă a productivității procesului de programare.

O caracteristică notabilă a MFC este prefixul „Afx” utilizat în numele multor funcții, macrocomenzi și numele fișierului de antet standard „stdafx.h”. Într-un stadiu incipient de dezvoltare, ceea ce mai târziu a devenit cunoscut sub numele de MFC a fost numit „Extensii de cadru de aplicație” și abreviat ca „Afx”. Decizia de a schimba numele în Microsoft Foundation Classes (MFC) a fost luată prea târziu pentru a schimba referințele la Afx din cod.

Biblioteca Object Windows (OWL), dezvoltată de Borland pentru a rula propriul compilator C++ , a fost un produs concurent introdus în aceeași perioadă. Borland a oprit în cele din urmă dezvoltarea OWL și a achiziționat o licență pe termen scurt pentru a utiliza bibliotecile MFC, dar nu a oferit niciodată suport MFC complet în produsele sale. Borland a lansat ulterior VCL ca înlocuitor pentru OWL.

Accentul Microsoft asupra MFC a fost slăbit în favoarea Microsoft .NET Framework . Cu toate acestea, în ciuda acestui fapt, MFC este încă popular printre dezvoltatori.

În aprilie 2008, Microsoft a lansat, după ani de inactivitate, o actualizare majoră a MFC numită MFC Feature Pack. Această actualizare a fost oferită pentru instalare ca supliment la Visual Studio 2008. Practic, acestea erau clase MFC suplimentare, ale căror drepturi au fost achiziționate de la compania rusă BCGSoft [1] . MFC a inclus suport pentru noua interfață Ribbon și câteva alte îmbunătățiri legate de controalele îmbunătățite ale interfeței. De la lansarea Visual Studio 2008 Service Pack, aceste clase au devenit parte integrantă a MFC.

Versiuni

Versiunea produsului Versiunea MFC Data de lansare
Microsoft C/C++ 7.0 MFC 1.0 1992
Visual C++ 1.0 MFC 2.0 ( arhitectura de vizualizare a documentului introdusă )
Visual C++ 1.5 MFC 2.5 (suport implementat pentru ODBC și tehnologiile drag-and-drop )
Visual C++ 1.52c MFC 2.5 (ultima platformă de dezvoltare pentru MS Windows 3.x)
Visual C++ 2.0 MFC 3.0 (a adăugat multitasking și suport Unicode )
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll inclus cu Windows 95) august 1995
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll inclus în versiunea inițială a Windows 98) martie 1998
eMbedded Visual C++ 3.0 MFC 4.2 (mfc42.dll)
Visual C++ 5.0 MFC 4.21 (mfc42.dll), o actualizare majoră a MFC 4.2.
Visual C++ 6.0 MFC 6.0 (mfc42.dll) 1998
eMbedded 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 februarie 2002
Visual C++ .NET 2003 (Visual C++ 7.1) MFC 7.1 (mfc71.dll), .NET 1.1 aprilie 2003
Visual C++ 2005 [2] (Visual C++ 8.0) MFC 8.0 (mfc80.dll), .NET 2.0 octombrie 2005
Visual C++ 2008 [2] (Visual C++ 9.0) MFC 9.0.21022 (mfc90.dll), .NET 3.5 noiembrie 2007
Visual C++ 2008 [2] cu pachet de caracteristici MFC 9.0.30411 (mfc90.dll) aprilie 2008
Visual C++ 2008 [2] SP1 MFC 9.0.30729 (mfc90.dll) august 2008
Visual C++ 2008 [2] Actualizare de securitate (KB971092) MFC 9.0.30729.4148 (mfc90.dll) iulie 2009
Visual C++ 2010 MFC 10.0.30319.1 (mfc100.dll), .NET 4.0 aprilie 2010
Visual C++ 2010 SP1 MFC 10.0.40219.1 (mfc100.dll), .NET 4.0 martie 2011
Visual C++ 2010 + MS11-025 MFC 10.0.30319.415 (mfc100.dll), .NET 4.0 aprilie 2011
Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.50727.1 (mfc110.dll), .NET 4.5 26 iulie 2012
Actualizare 1 Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.51106.1 (mfc110.dll), .NET 4.5 5 noiembrie 2012
Actualizare 3 Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.60610.1 (mfc110.dll), .NET 4.5 26 iulie 2012
Visual C++ 2013 (Visual C++ 12.0) MFC 12.0.21005.1 (mfc120.dll), .NET 4.5.1 5 octombrie 2013
Actualizare 2 Visual C++ 2013 (Visual C++ 12.0) MFC 12.0.30501.0 (mfc120.dll), .NET 4.5.1 30 decembrie 2014
Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23026.0 (mfc140.dll), .NET 4.6 20 iulie 2015
Actualizare 1 Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23506.0 (mfc140.dll), .NET 4.6.1 30 noiembrie 2015
Actualizare 2 Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23918.0 (mfc140.dll) 30 martie 2016
Actualizare 3 Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.24210.0 (mfc140.dll) 27 iunie 2016
Actualizare Visual C++ 2015 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 martie 2017

Note

  1. BCGSoft: Despre noi . Consultat la 20 aprilie 2011. Arhivat din original pe 25 mai 2011.
  2. 1 2 3 4 5 Biblioteca MFC nu este inclusă în Visual Studio Express Edition.

Vezi și