Microsoft Foundation Classes

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 29. prosince 2020; kontroly vyžadují 2 úpravy .

Balíček Microsoft Foundation Classes (MFC) je knihovna C++ vyvinutá společností Microsoft a navržená k usnadnění vývoje aplikací GUI pro Microsoft Windows pomocí bohaté sady tříd knihoven.

Jak to funguje

Knihovna MFC, stejně jako její hlavní konkurent, Borland VCL , usnadňuje práci s GUI vytvořením aplikačního frameworku  – „kostra“ programu, který se automaticky vytváří podle daného rozložení rozhraní a zcela přebírá rutinní akce za své údržba (zpracování událostí okna, přenos dat mezi vnitřními vyrovnávací paměti prvků a proměnnými programu atd.). Po vygenerování aplikačního rámce potřebuje programátor pouze zadat kód do míst, kde jsou vyžadovány speciální akce. Rámec musí mít dobře definovanou strukturu, takže Visual C++ poskytuje průvodce pro jeho generování a úpravu.

Kromě toho MFC poskytuje objektově orientovanou vrstvu wrapperů ( anglicky  wrappers ) přes mnoho funkcí Windows API , díky čemuž je práce s nimi o něco pohodlnější. Tato vrstva představuje mnoho objektů zabudovaných do systému (okna, widgety , soubory atd.) ve formě tříd a opět se stará o rutinní akce, jako je zavírání deskriptorů a alokace / uvolnění paměti.

Přidání kódu do aplikačního rámce

Přidání aplikačního kódu do frameworku je implementováno dvěma způsoby. První využívá mechanismus dědičnosti : hlavní programové struktury rámce jsou prezentovány ve formě tříd zděděných z knihoven. Tyto třídy poskytují mnoho virtuálních funkcí volaných v určitých bodech programu. Předefinováním (ve většině případů je nutné volat funkci základní třídy) těchto funkcí může programátor přidat provádění v těchto bodech svého kódu.

Druhá metoda se používá k přidání obslužných rutin událostí okna. Průvodce vytváří speciální pole uvnitř rámců tříd spojených s okny - mapy (okenních) zpráv ( angl.  message map ), obsahující dvojice "ID zprávy - ukazatel na handler". Při přidávání/odebírání obslužné rutiny provede průvodce změny v odpovídající mapě zpráv.

Historie

První verze MFC byla vydána s verzí 7 16bitového kompilátoru C/C++ společnosti Microsoft v roce 1992. Pro ty, kteří vyvíjeli aplikace pomocí funkcí API , balíček MFC sliboval velmi výrazné zvýšení produktivity programovacího procesu.

Jednou z pozoruhodných vlastností MFC je předpona "Afx" používaná v názvech mnoha funkcí, maker a název standardního hlavičkového souboru "stdafx.h". V rané fázi vývoje se to, co se později stalo známým jako MFC, nazývalo „Rozšíření aplikačního rámce“ a zkráceno jako „Afx“. Rozhodnutí změnit název na Microsoft Foundation Classes (MFC) bylo učiněno příliš pozdě na to, aby se v kódu změnily odkazy na Afx.

Knihovna Object Windows Library (OWL), vyvinutá společností Borland pro provoz vlastního kompilátoru C++ , byla konkurenčním produktem představeným ve stejném období. Borland nakonec vývoj OWL zastavil a získal krátkodobou licenci na používání knihoven MFC, ale nikdy nenabídl plnou podporu MFC ve svých produktech. Borland později vydal VCL jako náhradu za OWL.

Zaměření Microsoftu na MFC bylo uvolněno ve prospěch Microsoft .NET Framework . Navzdory tomu je však MFC mezi vývojáři stále populární.

V dubnu 2008 vydal Microsoft po letech nečinnosti velkou aktualizaci MFC nazvanou MFC Feature Pack. Tato aktualizace byla nabídnuta k instalaci jako doplněk k Visual Studiu 2008. V podstatě se jednalo o dodatečné třídy MFC, ke kterým byla získána práva od ruské společnosti BCGSoft [1] . MFC zahrnoval podporu pro nové rozhraní pásu karet a několik dalších vylepšení souvisejících s vylepšenými ovládacími prvky rozhraní. Od vydání aktualizace Visual Studio 2008 Service Pack se tyto třídy staly nedílnou součástí MFC.

Verze

Verze produktu verze MFC datum vydání
Microsoft C/C++ 7.0 MFC 1.0 1992
Visual C++ 1.0 MFC 2.0 (představená architektura zobrazení dokumentů )
Visual C++ 1.5 MFC 2.5 (implementovaná podpora pro ODBC a technologie drag-and-drop )
Visual C++ 1.52c MFC 2.5 (poslední vývojová platforma pro MS Windows 3.x)
Visual C++ 2.0 MFC 3.0 (přidána podpora multitaskingu a Unicode )
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll součástí Windows 95) srpna 1995
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll součástí počáteční verze Windows 98) březen 1998
eMbedded Visual C++ 3.0 MFC 4.2 (mfc42.dll)
Visual C++ 5.0 MFC 4.21 (mfc42.dll), hlavní aktualizace 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 února 2002
Visual C++ .NET 2003 (Visual C++ 7.1) MFC 7.1 (mfc71.dll), .NET 1.1 dubna 2003
Visual C++ 2005 [2] (Visual C++ 8.0) MFC 8.0 (mfc80.dll), .NET 2.0 října 2005
Visual C++ 2008 [2] (Visual C++ 9.0) MFC 9.0.21022 (mfc90.dll), .NET 3.5 listopadu 2007
Visual C++ 2008 [2] s Feature Pack MFC 9.0.30411 (mfc90.dll) dubna 2008
Visual C++ 2008 [2] SP1 MFC 9.0.30729 (mfc90.dll) srpna 2008
Aktualizace zabezpečení Visual C++ 2008 [2] (KB971092) MFC 9.0.30729.4148 (mfc90.dll) července 2009
Visual C++ 2010 MFC 10.0.30319.1 (mfc100.dll), .NET 4.0 dubna 2010
Visual C++ 2010 SP1 MFC 10.0.40219.1 (mfc100.dll), .NET 4.0 březen 2011
Visual C++ 2010 + MS11-025 MFC 10.0.30319.415 (mfc100.dll), .NET 4.0 dubna 2011
Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.50727.1 (mfc110.dll), .NET 4.5 26. července 2012
Visual C++ 2012 Update 1 (Visual C++ 11.0) MFC 11.0.51106.1 (mfc110.dll), .NET 4.5 5. listopadu 2012
Visual C++ 2012 Update 3 (Visual C++ 11.0) MFC 11.0.60610.1 (mfc110.dll), .NET 4.5 26. července 2012
Visual C++ 2013 (Visual C++ 12.0) MFC 12.0.21005.1 (mfc120.dll), .NET 4.5.1 5. října 2013
Visual C++ 2013 Update 2 (Visual C++ 12.0) MFC 12.0.30501.0 (mfc120.dll), .NET 4.5.1 30. prosince 2014
Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23026.0 (mfc140.dll), .NET 4.6 20. července 2015
Visual C++ 2015 Update 1 (Visual C++ 14.0) MFC 14.0.23506.0 (mfc140.dll), .NET 4.6.1 30. listopadu 2015
Visual C++ 2015 Update 2 (Visual C++ 14.0) MFC 14.0.23918.0 (mfc140.dll) 30. března 2016
Visual C++ 2015 Update 3 (Visual C++ 14.0) MFC 14.0.24210.0 (mfc140.dll) 27. června 2016
Visual C++ 2015 Update 3 + KB3165756 MFC 14.0.24212.0 (mfc140.dll) 2. srpna 2016
Visual C++ 2017 (Visual C++ 15.0) MFC 14.10.25008.0 (mfc140.dll), .NET 4.6.2 7. března 2017

Poznámky

  1. BCGSoft: O nás . Získáno 20. dubna 2011. Archivováno z originálu 25. května 2011.
  2. 1 2 3 4 5 Knihovna MFC není součástí sady Visual Studio Express Edition.

Viz také