Share to: share facebook share twitter share wa share telegram print page

Microsoft Foundation Class Library

Microsoft Foundation Class Library

Tipusjoc de ginys Modifica el valor a Wikidata
Versió inicial1992 Modifica el valor a Wikidata
Llicènciallicència de propietat Modifica el valor a Wikidata
Equip
Desenvolupador(s)Microsoft Modifica el valor a Wikidata
Més informació
Lloc webdocs.microsoft.com… Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata

La Microsoft Foundation Class Library (MFC) és una biblioteca orientada a objectes de C++ per al desenvolupament d'aplicacions d'escriptori per a Windows.[1]

Microsoft va introduir MFC el 1992 i ràpidament es va generalitzar. Tot i que Microsoft ha introduït marcs d'aplicació alternatius des de llavors, MFC continua sent àmpliament utilitzat.[2]

Història

MFC es va introduir el 1992 amb el compilador C/C++ 7.0 de Microsoft per utilitzar-lo amb versions de 16 bits de Windows com un contenidor C++ orientat a objectes extremadament prim per a l'API de Windows. C++ tot just començava a substituir C per al desenvolupament de programari d'aplicacions comercials en aquell moment. En un programa MFC, les crides directes a l'API de Windows rarament són necessàries. En canvi, els programes creen objectes a partir de classes Microsoft Foundation Class i criden funcions membres que pertanyen a aquests objectes. Moltes d'aquestes funcions comparteixen els seus noms amb les funcions API corresponents.

Una peculiaritat de MFC és l'ús d'"Afx" com a prefix per a moltes funcions, macros i el nom de capçalera precompilat estàndard "stdafx.h". Durant el desenvolupament inicial, el que es va convertir en MFC es va anomenar "Application Framework Extensions" i es va abreujar "Afx". El nom Microsoft Foundation Classes (MFC) es va adoptar massa tard en el cicle de llançament per canviar aquestes referències.

MFC 8.0 es va publicar amb Visual Studio 2005. MFC 9.0 es va publicar amb Visual Studio 2008. El 7 d'abril de 2008, Microsoft va publicar una actualització de les classes MFC com a actualització fora de banda de Visual Studio 2008 i MFC 9.[3][4][5] L'actualització inclou noves construccions d'interfície d'usuari, com ara les cintes i els widgets d'IU associats, barres d'eines totalment personalitzables, panells d'acoblament que es poden desplaçar lliurement o acoblar a qualsevol costat i pestanyes de documents.[6]

MFC era inicialment una característica de les versions comercials de Visual Studio. Per tant, no s'inclou al programari gratuït Visual C++ Express.[7] Tanmateix, l'edició Community de Visual Studio, introduïda el 2014, inclou MFC.

Object Windows Library (OWL), dissenyada per al seu ús amb el compilador Turbo C++ de Borland, va ser un producte de la competència introduït per Borland més o menys al mateix temps. Finalment, Borland va interrompre el desenvolupament d'OWL i va obtenir la llicència de distribució de les capçaleres, biblioteques i DLL MFC de Microsoft[8] durant un curt període, tot i que mai va oferir suport completament integrat per a MFC. Borland va llançar més tard Visual Component Library per substituir el marc OWL.

Característiques

MFC és una biblioteca que encapsula parts de l'API de Windows en classes de C++, incloent-hi la funcionalitat que els permet utilitzar un marc de treball d'aplicació per defecte. Les classes es defineixen per a molts dels objectes de Windows gestionats per handle i també per a finestres predefinides i controls comuns.

En el moment de la seva introducció, MFC proporcionava macros de C++ per al maneig de missatges de Windows (via Message Maps[9]), excepcions, identificació de tipus en temps d'execució (RTTI), serialització i instanciació dinàmica de classes. Les macros per al maneig de missatges tenien com a objectiu reduir el consum de memòria evitant l'ús gratuït de taules virtuals i també proporcionar una estructura més concreta perquè diverses eines proporcionades per Visual C++ editessin i manipulessin codi sense analitzar tot el llenguatge. Les macros de maneig de missatges van substituir el mecanisme de funcions virtuals proporcionat per C++.

Les macros per a la serialització, les excepcions i l'RTTI van ser anteriors a la disponibilitat d'aquestes funcions a Microsoft C++ en diversos anys. Les versions de 32 bits de MFC, per a sistemes operatius Windows NT 3.1 i posteriors, utilitzaven compiladors que implementaven les funcions del llenguatge i actualitzaven les macros per simplement encapsular les funcions del llenguatge en lloc de proporcionar implementacions personalitzades, aconseguint compatibilitat ascendent.

L'editor de recursos de la cinta MFC permet al desenvolupador dissenyar la cinta gràficament en lloc d'haver d'utilitzar el marcatge declaratiu basat en XML com l' API RibbonX. Opcionalment, els components de la cinta es poden programar directament cridant un nou conjunt de mètodes de classe de cinta. El desenvolupador pot combinar el desenvolupament gràfic i programàtic de la cinta segons convingui. L'assistent d'aplicacions MFC també s'ha actualitzat per admetre les noves funcions, inclosa una casella de selecció per seleccionar si l'aplicació utilitzarà la cinta o els panells d'acoblament. La nova funcionalitat es proporciona a les noves classes perquè les aplicacions antigues continuïn executant-se.[10] Aquesta actualització es basa en la BCGControlBar Library Professional Edition de BCGSoft.[11] Microsoft ha imposat requisits de llicència addicionals als usuaris de les cintes.[12] Aquests inclouen el requisit d'adherir-se a les Directrius de disseny de la interfície d'usuari de Microsoft i una clàusula anticompetència que prohibeix l'ús de la interfície d'usuari en aplicacions que competeixen amb Microsoft Office.

MFC es pot utilitzar enllaçant una biblioteca estàtica o afegint la DLL de MFC.

Referències

  1. «Microsoft Foundation Class Library (Mfc) | Software Development» (en anglès). [Consulta: 3 setembre 2025].
  2. «MICROSOFT FOUNDATION CLASS LIBRARY» (en anglès). [Consulta: 3 setembre 2025].
  3. «Visual C++ 2008 Feature Pack shipped» (en anglès). Somasegar's blog. Microsoft, 07-04-2008.
  4. «Visual C++ 2008 Feature Pack Released!» (en anglès). C++ Team Blog. Microsoft, 07-04-2008.
  5. «Visual C++ 2008 Feature Pack Refresh» (en anglès). C++ Team Blog. Microsoft, 22-04-2008.
  6. «Quick Tour of New MFC functionality» (en anglès). Blogs.msdn.com, 09-11-2007. [Consulta: 10 setembre 2019].
  7. «Visual Studio Express Edition FAQ» (en anglès). Microsoft.com. Arxivat de l'original el June 11, 2011. [Consulta: 6 gener 2012].
  8. «Microsoft Buys Into Inprise, Settles Disputes» (en anglès). Techweb.com. Arxivat de l'original el October 17, 2007. [Consulta: 6 gener 2012].
  9. Williams, Mickey. «Creating Your Own Message Maps» (en anglès). Inform IT.
  10. «Quick Tour of New MFC functionality» (en anglès). Blogs.msdn.com, 09-11-2007. [Consulta: 10 setembre 2019].
  11. «MFC Update Powered By BCGSoft» (en anglès). Msdn2.microsoft.com, 09-11-2007. [Consulta: 16 novembre 2007].
  12. «Visual C++ 2008 Feature Pack Release Download Page» (en anglès). Microsoft.com. [Consulta: 16 maig 2008].
Kembali kehalaman sebelumnya