Přeskočit na obsah

Microsoft Foundation Class Library

Z Wikipedie, otevřené encyklopedie

Šablona:Microsoft Foundation Class Library

Microsoft Foundation Class Library (Microsoft Foundation Classes nebo MFC) je knihovna, která zabaluje části Windows API do ucelených C++ tříd, které zajišťuje použití a plnou kompatibilitu s jakoukoli platformou . Třídy spravují většinu objektů ve Windows a tedy předdefinovávají například okna nebo kontrolní panely.

Historie

Knihovna MFC byla poprvé představena v roce 1992 společně s kompilátorem C/C++ 7.0 pro 16-ti bitové verze OS Windows. Jazyk C++ postupem času nahradil C pro vývoj komerčního software a C/C++ 7.0 byl první kompilátor společnosti Microsoft, který C++ podporoval.

MFC používá "Afx" jako předponu mnoha funkcí, maker a standardních předkompilovaných hlavičkových souborů (např. stdafx.h). Během krátkého období se knihovna MFC stala populární a mnoho programátorů jí začalo zařazovat jako "Application Framework Extensions (Rozšířené pracovního prostředí)" neboli ve zkratce "AFX". Avšak název Microsoft Foundation Class (MFC) byl přijat později, a proto nezasáhl do názvů funkcí, maker a hlavičkových souborů.[1]

Knihovna MFC 8.0 byla vydána společně s Visual Studiem 2005. MFC není součástí volné edice Visual C++ 2005 verze Express.

Object Windows Library (OWL) je navržena pro Borland kompilátor Turbo C++ a byla představena společností Borland ve stejné době. Borland dokonce přestal vyvýjet OWL a uvalil licenci na kolekci hlavičkových souborů MFC, knihoven a DLL souborů.[2] I když byla tato licence po krátké době zrušena, MFC přestala plně podporovat OWL. Borland proto později vydal VCL (Visual Component Library) , aby opravil nekompatibilitu.

Význam MFC byl ovšem oslaben s příchodem .NET Framework. Alternativou k MFC je Windows Template Library (WTL). Kompilátor Visual C++ Express dokáže zkompilovat MFC aplikace, avšak nezahrnuje podporu IDE profesionálních edicí.[3]

Vlastnosti

Když se trhu objevila knihovna MFC, Microsoft tím rozšířil syntaxi C++ o mnoho maker (např. Message_Maps) pro správu zpráv, pomocí kterých OS Windows komunikuje s programy(aplikacemi). Je i mnoho výjimek, při kterých je potřeba uchýlit se k funkcím Win32 API. Makra jsou navržena pro maximalizaci výkonu práce s pamětí a pro poskytnutí čitelných struktur, které jsou následně používány i průvodci pro vytváření základních partií programu. Práce s makry zpráv nahrazuje virtuální funkce, které poskytuje C++. Avšak určitě nastane situace, kde použití virtuálních funkcí bude nezbytné a kde MFC neposkytuje přijatelný ekvivalent.

Chyby

MFC je spojena s vysokou kompatibilitou v rámci OS Windows. MFC je dynamicky se rozšiřující knihovna, která jako jediná je udržována přímo výrobcem OS Windows firmou Microsoft. Proto pokud je nějaký program napsán např pro Win NT a vyšší, téměř jistě se vyskytne mnoho problému při zprovoznění na Win 98 a nižší. Důvodem je postupné doplňování obslužných maker a rutin MFC. Dalším důvodem je mnoho chyb přímo v operačních systémech Windows. Příkladem může být chyba v práci s bity ve Windows 98, kterou je třeba brát v úvahu při práci se soubory.

Třídy

Třídy MFC jsou implementované balíky, do kterých je zabalena strukturu základních funkcí a proměnných (většinou ve tvaru ukazatelů). Několik základních tříd je uvedeno níže.

MFC třídy

  • CDC
  • CFile
  • CRect

Jsou zde uvedeny jenom některé třídy. Hlavním rysem je počáteční písmenko C, za nímž následuje explicitní pojmenování třídy.

Verze

Verze produktu MFC verze
Microsoft C/C++ 7.0 MFC 1.0
Visual C++ 1.0 MFC 2.0
Visual C++ 1.5 MFC 2.5
Visual C++ 2.0 MFC 3.0
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll zahrnuta ve Windows 95)
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll zahrnuta ve Windows 98-1. Edice)
Pocket PC Embedded 3.0 MFC 4.2 (mfc42.dll)
Visual C++ 5.0 MFC 4.21 (mfc42.dll)
Visual C++ 6.0 MFC 6.0 (mfc42.dll)
Pocket PC Embedded 4.0
Visual C++ .NET 2002 MFC 7.0 (mfc70.dll)
Visual C++ .NET 2003 MFC 7.1 (mfc71.dll)
Visual C++ 2005 MFC 8.0 (mfc80.dll)
Visual C++ 2005 Express None
Visual C++ 2008 MFC 9.0 (mfc90.dll)

Odkazy

Citace a reference

  1. Microsoft Codenamed "Acropolis" – Composite Client Application Builder for .NET [online]. microsoft.com [cit. 2007-10-09]. Dostupné online. (anglicky, japonsky) 
  2. Microsoft Buys Into Inprise, Settles Disputes [php]. The TechWeb Network, 1999-06-08 [cit. 2007-10-09]. Dostupné online. (anglicky) 
  3. Visual C++ Express - Easy to Use [aspx]. Microsoft [cit. 2007-10-09]. Dostupné online. (anglicky) 

Zdroje