Libreria di classi Microsoft Foundation - Microsoft Foundation Class Library
Sviluppatore/i | Microsoft |
---|---|
Versione iniziale | 1992 |
Rilascio stabile | 14.22.27821.0 / 24 luglio 2019 |
Scritto in | C++ |
Sistema operativo | Microsoft Windows |
Licenza | proprietario |
Sito web | docs |
Microsoft Foundation Class Library (MFC) è un C ++ orientata agli oggetti libreria per lo sviluppo di applicazioni desktop per di Windows .
MFC è stato introdotto da Microsoft nel 1992 e ha rapidamente guadagnato un uso diffuso. Sebbene Microsoft abbia introdotto framework applicativi alternativi da allora, MFC rimane ampiamente utilizzato.
Storia
MFC è stato introdotto nel 1992 con il compilatore C/C++ 7.0 di Microsoft per l'utilizzo con le versioni a 16 bit di Windows come wrapper C++ orientato agli oggetti estremamente sottile per l'API di Windows. All'epoca il C++ stava appena iniziando a sostituire il C per lo sviluppo di software applicativo commerciale. In un programma MFC, le chiamate API di Windows dirette sono raramente necessarie. Invece, i programmi creano oggetti dalle classi Microsoft Foundation Class e chiamano funzioni membro appartenenti a quegli oggetti. Molte di queste funzioni condividono i loro nomi con le corrispondenti funzioni API.
Una particolarità di MFC è l'uso di "Afx" come prefisso per molte funzioni, macro e il nome dell'intestazione precompilata standard "stdafx.h". Durante lo sviluppo iniziale, quello che divenne MFC fu chiamato "Application Framework Extensions" e abbreviato "Afx". Il nome Microsoft Foundation Classes (MFC) è stato adottato troppo tardi nel ciclo di rilascio per modificare questi riferimenti.
MFC 8.0 è stato rilasciato con Visual Studio 2005 . MFC 9.0 è stato rilasciato con Visual Studio 2008. Il 7 aprile 2008, Microsoft ha rilasciato un aggiornamento alle classi MFC come aggiornamento fuori banda di Visual Studio 2008 e MFC 9. L'aggiornamento presenta nuovi costrutti dell'interfaccia utente, inclusi i nastri e widget dell'interfaccia utente associati , barre degli strumenti completamente personalizzabili , riquadri di ancoraggio che possono essere liberamente spostati o ancorati a qualsiasi scheda laterale e documento .
MFC era inizialmente una funzionalità delle versioni commerciali di Visual Studio. In quanto tale, non è incluso nel freeware Visual C++ Express . L' edizione Community di Visual Studio , introdotta nel 2014, tuttavia, include MFC.
Object Windows Library (OWL), progettato per l'uso con il compilatore Turbo C++ di Borland , era un prodotto concorrente introdotto da Borland nello stesso periodo. Alla fine, Borland interruppe lo sviluppo di OWL e concesse in licenza la distribuzione delle intestazioni, delle librerie e delle DLL MFC da Microsoft per un breve periodo, sebbene non offrisse mai un supporto completamente integrato per MFC. Borland in seguito ha rilasciato Visual Component Library per sostituire il framework OWL.
Caratteristiche
MFC è una libreria che racchiude parti dell'API di Windows in classi C++ , inclusa la funzionalità che consente loro di utilizzare un framework applicativo predefinito . Le classi sono definite per molti degli oggetti Windows gestiti da handle e anche per finestre predefinite e controlli comuni.
Al momento della sua introduzione, MFC ha fornito macro C++ per la gestione dei messaggi di Windows (tramite Message Maps ), eccezioni , identificazione del tipo di runtime (RTTI), serializzazione e creazione di istanze dinamiche di classi. Le macro per la gestione dei messaggi miravano a ridurre il consumo di memoria evitando l'uso gratuito di tabelle virtuali e anche a fornire una struttura più concreta per vari strumenti forniti da Visual C++ per modificare e manipolare il codice senza analizzare l'intero linguaggio. Le macro di gestione dei messaggi hanno sostituito il meccanismo della funzione virtuale fornito da C++.
Le macro per la serializzazione, le eccezioni e l'RTTI hanno preceduto la disponibilità di queste funzionalità in Microsoft C++ di alcuni anni. Le versioni a 32 bit di MFC, per Windows NT 3.1 e successivi sistemi operativi Windows, utilizzavano compilatori che implementavano le funzionalità del linguaggio e aggiornavano le macro per avvolgere semplicemente le funzionalità del linguaggio invece di fornire implementazioni personalizzate, realizzando la compatibilità verso l'alto.
L'editor di risorse della barra multifunzione MFC consente allo sviluppatore di progettare la barra multifunzione graficamente invece di dover utilizzare il markup dichiarativo basato su XML come l' API RibbonX . Facoltativamente, i componenti della barra multifunzione possono essere programmati direttamente chiamando un nuovo set di metodi della classe della barra multifunzione. Lo sviluppatore può combinare lo sviluppo del nastro grafico e programmatico come è conveniente. Anche la procedura guidata dell'applicazione MFC è stata aggiornata per supportare le nuove funzionalità, inclusa una casella di controllo per selezionare se l'applicazione utilizzerà la barra multifunzione oi riquadri di ancoraggio. La nuova funzionalità viene fornita in nuove classi in modo che le vecchie applicazioni continuino a funzionare. Questo aggiornamento si basa sulla BCGControlBar Library Professional Edition di BCGSoft . Microsoft ha imposto requisiti di licenza aggiuntivi agli utenti dei nastri. Questi includono l'obbligo di aderire alle linee guida di progettazione dell'interfaccia utente di Microsoft e una clausola anticoncorrenziale che vieta l'uso dell'interfaccia utente nelle applicazioni che competono con Microsoft Office .
MFC può essere utilizzato collegando una libreria statica o aggiungendo la DLL MFC .
Versioni
Prodotto | Biblioteca | Versione | Data di rilascio | |
---|---|---|---|---|
Nome | Versione | |||
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 (ultima piattaforma di sviluppo per 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 incluso con Windows 95 ) | agosto 1995 |
Visual C++ 4.1 | mfc40.dll | MFC 4.1 | ||
Visual C++ 4.2 | mfc42.dll | MFC 4.2 (mfc42.dll incluso nella versione originale di Windows 98 ) | marzo 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, un importante aggiornamento da 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 febbraio 2002 |
Microsoft Visual C++ .NET 2003 | Visual C++ .NET 2003 (Visivo C++ 7.1) | mfc71.dll | MFC 7.1 | 24 aprile 2003 |
Visual C++ .NET 2003 + MS11-025 (KB2465373) | MFC 7.10.6119.0 | 12 aprile 2011 | ||
Microsoft Visual C++ 2005 | Visual C++ 2005 (Visivo C++ 8.0) | mfc80.dll | 8.0.50727.42 | 10 aprile 2006 |
Visual C++ 2005 SP1 | 8.0.50727.762 | 27 agosto 2007 | ||
Visual C++ 2005 SP1 + MS09-035 (KB973544) | 8.0.50727.4053 | 28 luglio 2009 | ||
Visual C++ 2005 SP1 + MS11-025 (KB2467175) | 8.0.50727.5592 | 12 aprile 2011 | ||
Visual C++ 2005 SP1 + MS11-025 (KB2538242) | 8.0.50727.6195 (incluso nel redist 8.0.61000/8.0.61001) | 14 giugno 2011 | ||
Microsoft Visual C++ 2008 | Visual C++ 2008 (Visivo C++ 9.0) | mfc90.dll | 9.0.2102.8 | 19 novembre 2007 |
Visual C++ 2008 + MS09-035 (KB973551) | 9.0.21022.218 | 28 luglio 2009 | ||
Visual C++ 2008 con Feature Pack | 9.0.30411 | 22 aprile 2008 | ||
Visual C++ 2008 SP1 | 9.0.30729.1 | 11 agosto 2008 | ||
Visual C++ 2008 SP1 + MS09-035 (KB973552) | 9.0.30729.4148 | 28 luglio 2009 | ||
Visual C++ 2008 SP1 + MS11-025 (KB2467174) | 9.0.30729.5570 | 12 aprile 2011 | ||
Visual C++ 2008 SP1 + MS11-025 (KB2538243) | 9.0.30729.6161 (il programma di installazione ha la versione 9.0.30729.5677) | 14 giugno 2011 | ||
Microsoft Visual C++ 2010 | Visual C++ 2010 (Visivo C++ 10.0) | mfc100.dll | 10.0.30319.1 | 12 aprile 2010 |
Visual C++ 2010 + MS11-025 (KB2467173) | 10.0.30319.415 | 12 aprile 2011 | ||
Visual C++ 2010 SP1 | 10.0.40219.1 | 10 marzo 2011 | ||
Visual C++ 2010 SP1 + MS11-025 (KB2565063) | 10.0.40219.325 | 9 agosto 2011 | ||
Microsoft Visual C++ 2012 | Visual C++ 2012 (Visivo C++ 11.0) | mfc110.dll | 11.0.50727,1 | 12 settembre 2012 |
Visual C++ 2012 Aggiornamento 1 | 11.0.51106.1 | 26 novembre 2012 | ||
Aggiornamento 3 di Visual C++ 2012 | 11.0.60610.1 | 26 giugno 2013 | ||
Visual C++ 2012 Aggiornamento 4 | 11.0.61030.0 | 13 novembre 2013 | ||
Microsoft Visual C++ 2013 | Visual C++ 2013 (Visual C++ 12.0) | mfc120.dll | 12.0.21005.1 | 17 ottobre 2013 |
Visual C++ 2013 Aggiornamento 2 | 12.0.30501,0 | 12 maggio 2014 | ||
Aggiornamento 5 di Visual C++ 2013 + KB3138367 | 12.0.40649.5 | febbraio 2016? | ||
Aggiornamento 5 di Visual C++ 2013 + KB3179560 | 12.0.40660.0 | 8 luglio 2016 | ||
Aggiornamento 5 di Visual C++ 2013 + KB4032938 | 12.0.40664.0 | 18 luglio 2017 | ||
Microsoft Visual C++ 2015 | Visual C++ 2015 (Visual C++ 14.0) | mfc140.dll | 14.0.23026.0 | 20 luglio 2015 |
Visual C++ 2015 Aggiornamento 1 | 14.0.23506.0 | 30 novembre 2015 | ||
Visual C++ 2015 Aggiornamento 2 | 14.0.23918.0 | 30 marzo 2016 | ||
Aggiornamento 3 di Visual C++ 2015 | 14.0.24210.0 | 27 giugno 2016 | ||
Aggiornamento 3 di Visual C++ 2015 | 14.0.24212.0 | 18 agosto 2016 | ||
Aggiornamento 3 di Visual C++ 2015 + KB3165756 | 14.0.24215.1 | 15 settembre 2016 | ||
Microsoft Visual C++ 2017 | Visual C++ 15.0 | mfc140.dll | 14.10.25008.0 | 7 marzo 2017 |
Visual C++ 15.1? | 14.10.25017.0 | 5 aprile 2017? | ||
Visual C++ 15.2 | 14.11.25325.0 | 10 maggio 2017 | ||
Visual C++ 15.4 | 14.12.25810.0 | 9 ottobre 2017 | ||
Visual C++ 15.6 | 14.13.26020.0 | 5 marzo 2018 | ||
Visual C++ 15.7 | 14.14.26405.0 | 7 maggio 2018 | ||
Visual C++ 15.7.3? | 14.14.26429.4 | 31 maggio 2018 | ||
Visual C++ 15.8 | 14.15.26706.0 | 14 agosto 2018 | ||
Visual C++ 15.9 | 14.16.27012.6 | 13 novembre 2018 | ||
Visual C++ 15.9.5 | 14.16.27024.1 | 8 gennaio 2019 | ||
Visual C++ 15.9.6 | 14.16.27026.1 | 24 gennaio 2019 | ||
Visual C++ 15.9.9 | 14.16.27027.1 | 12 marzo 2019 | ||
Visual C++ 15.9.15 | 14.16.27033.0 | 13 agosto 2019 | ||
Microsoft Visual C++ 2019 | Visual C++ 16.0.0 | mfc140.dll | 14.20.27508.1 | 2 aprile 2019? |
Visual C++ 16.1.0 | 14.21.27702.2 | 21 maggio 2019 | ||
Visual C++ 16.2.0 | 14.22.27821.0 | 24 luglio 2019 | ||
Visual C++ 16.3.0 | 14.23.27820.0 | 23 settembre 2019 | ||
Visual C++ 16.4.0 | 14.24.28127.4 | 3 dicembre 2019 | ||
Visual C++ 16.5.0 | 14.25.28508.3 | 16 marzo 2020 | ||
Visual C++ 16.6.0 | 14.26.28720.3 | 19 maggio 2020 | ||
Visual C++ 16.6.3 | 14.26.28808.1 | 30 giugno 2020 | ||
Visual C++ 16.7.0 | 14.27.29016.0 | 5 agosto 2020 | ||
Visual C++ 16.7.5 | 14.27.29112.0 | 29 settembre 2020 | ||
Visual C++ 16.8.0 | 14.28.29325.2 | 10 novembre 2020 | ||
Visual C++ 16.8.2 | 14.28.29334.0 | 19 novembre 2020 | ||
Visual C++ 16.9.0 | 14.28.29910.0 | 2 marzo 2021 | ||
Visual C++ 16.9.2 | 14.28.29913.0 | 16 marzo 2021 | ||
Visual C++ 16.9.4 | 14.28.29914.0 | 13 aprile 2021 | ||
Visual C++ 16.10.0 | 14.29.0037.0 | 25 maggio 2021 | ||
Visual C++ 16.10.2 | 14.29.0038.0 | 15 giugno 2021 | ||
Visual C++ 16.10.4 | 14.29.30040.0 | 20 luglio 2021 | ||
Visual C++ 16.11.0 | 14.29.30133.0 | 10 agosto 2021 | ||
Visual C++ 16.11.4 | 14.29.30135.0 | 5 ottobre 2021 | ||
Microsoft Visual C++ 2022 | Visual C++ 17.0.0RC | mfc140.dll | 14.30.30704.0 | 13 ottobre 2021 |
Guarda anche
- Libreria modelli attivi (ATL)
- JUCE
- Qt
- Libreria modelli standard (STL)
- Libreria di modelli di Windows (WTL)
- WxWidget
Riferimenti
Ulteriori letture
- Prosa, Jeff (1999). Programmare Windows con MFC (2 ed.). Microsoft Press . ISBN 9781572316959.
- Pastore, George (1996). Interni MFC (7 ed.). Addison-Wesley . ISBN 9780201407211.
- Kruglinski, David (1997). All'interno di Visual C++ (4 ed.). Microsoft Press . ISBN 9781572315655.
- Microsoft (1995). Microsoft Visual C++: Programmazione con MFC (2 ed.). Microsoft Press . ISBN 9781556159213.
link esterno
- Gli ultimi download supportati di Visual C++ - Microsoft
- Dove posso scaricare Visual C++ Redistributables? - Microsoft
- Riferimento MFC MSDN - Microsoft
- MFC: Visual Studio 2005 e oltre - Microsoft
- Uno sguardo all'interno della prossima generazione di Visual C++ (copre i principali aggiornamenti di MFC 9) - Microsoft