牛油果怎么吃减肥餐 教你速成一道牛油果减肥膳食
Vyvojá? | Microsoft |
---|---|
Typ softwaru | Widget toolkit |
Licence | proprietární licence |
Web | docs |
Některá data mohou pocházet z datové polo?ky. |
Microsoft Foundation Class Library (Microsoft Foundation Classes nebo MFC), vedením Microsoftu ozna?ována jako ?Nové Windows API“,[1] je knihovna, která zapouzd?uje (zabaluje) vět?inu funkcí Windows API a uspo?ádává je do hierarchicky odstupňovanych C++ t?íd, které zaji??ují pou?ití a plnou kompatibilitu s vět?inou platforem OS Windows. T?ídy spravují vět?inu objekt? ve Windows a tedy p?eddefinovávají nap?íklad okna nebo kontrolní panely.
Historie
[editovat | editovat zdroj]Knihovna MFC byla poprvé p?edstavena v roce 1992 spole?ně s kompilátorem C/C++ 7.0 pro 16bitové verze OS Windows. Jazyk C byl postupem ?asu nahrazen C++ pro vyvoj komer?ního software a C/C++ 7.0 byl první kompilátor spole?nosti Microsoft, ktery C++ podporoval.
MFC 2.0 byla obsa?ena ve Visual C++ 1.0 z února 1993.
MFC pou?ívá Afx jako p?edponu mnoha funkcí, maker a standardních p?edkompilovanych hlavi?kovych 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 nepronikl do názv? funkcí, maker a hlavi?kovych soubor?. Knihovna je jednou z nejroz?í?eněj?ích a nejznáměj?ích knihoven pro vytvá?ení grafického rozhraní v OS Windows. Je psána jazykem C++. Implementuje mnoho funkcí Windows 32 API.
Knihovna MFC 8.0 byla vydána spole?ně s Visual Studiem 2005. MFC není sou?ástí volné Visual C++ 2005 Express edice.
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?kovych soubor? MFC, knihoven a .dll soubor?. 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.
Vyznam 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í.
Vlastnosti
[editovat | editovat zdroj]Kdy? se na trhu objevila knihovna MFC, byla programátory Windows API uvítána p?edev?ím proto, ?e poskytovala rozmanitou sadu t?íd, které v podstatě zabalují slo?itou procedurální architekturu WinAPI. Pro slo?ité operace (jako nap?. Message Maps) bylo MFC vybaveno mno?stvím maker, která skryvají obtí?nou funkcionalitu do jednoduchych definic. Struktura MFC je za pomocí maker optimalizována pro vykon (zejména díky mapám zpráv, které odleh?ují definice t?íd, napojenych na mapování, o mno?ství virtuálních funkcí, které daná t?ída zrovna nevyu?ije).
Pro urychlení vyvoje MFC aplikací byly mnohé stě?ejní t?ídy doplněny o funkcionalitu vy??í úrovně, s její? pomocí lze s jednoduchostí, nesrovnatelnou s p?ímym u?itím WinAPI funkcí, provádět ?asto u?ívané a ?ádané ?innosti, jako je nap?. tvorba u?ivatelskych nabídek a nástrojovych li?t, dialog? apod. MFC také poskytlo sadu ?ablonovych t?íd pro správu kolekcí, ?etězc?, vstupu a vystupu apod., co? v době, kdy je?tě nebyla vyvinutá knihovna STL, vzbudilo velky zájem vyvojá??.
Zavedení knihovny MFC ve své době p?edstavuje p?ínos p?edev?ím v rychlosti vyvoje a v oblasti stability aplikací. A? ji? byl tento produkt p?ekonany, díky svému někdej?ímu roz?í?ení je stále aktivně pou?ívany.
Chyby
[editovat | editovat zdroj]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 vyrobcem OS Windows firmou Microsoft. Proto pokud je nějaky program napsán nap?. pro Windows NT a vy??í, témě? jistě se vyskytne mnoho problém? p?i zprovoznění na Windows 98 a ni??í. D?vodem je postupné doplňování obslu?nych maker a rutin MFC. Dal?ím d?vodem je mnoho chyb p?ímo v opera?ních systémech Windows. P?íkladem m??e byt 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
[editovat | editovat zdroj]Mnohé t?ídy MFC tvo?í objektově orientované ?balení“ pro velmi podobné datové struktury z Windows API, p?i?em? ze svych ?lenskych funkcí volají nativní funkce Windows API.
MFC t?ídy a jimi obalené Windows API struktury
- CFile → HFILE
- CRect → LPRECT
- CWnd → HWND
Mnoho t?íd v?ak tvo?í zcela novou úroveň, shrnují mno?ství sourodé funkcionality a poskytují ve své implementaci metody pro tvorbu kostry okenní aplikace základní a zásadní. První t?ídou, na ní? padne zrak, je zcela právem t?ída CWinApp. Tato t?ída p?iná?í MFC implementaci zpracování zpráv (tzv. Message Loop), ?ím? vyvojá??m u?et?ila nelehky úkol tvorby vlastního zpracování. Propracovaná konstrukce v duchu OOP pak umo?ňuje ?ízení a distribuci zpracovanych zpráv do v?ech díl?ích oken aplikace.
Názvosloví
[editovat | editovat zdroj]MFC zavádí pro své vyvojá?e také sjednocené názvosloví. Stru?ny souhrn základních pravidel pro názvy:
- Název t?ídy za?íná velkym ?C“ (od slova ?class“), následuje název t?ídy (jeho první písmeno opět velké), nap?. CDialog
- Název proměnné za?íná zkratkou, definující typ proměnné, nap?. p pro pointer (ukazatel), sz pro char*, b pro bool
- Název ?lenské proměnné v t?ídě za?íná prefixem m_, nap?. m_pNextItem
Verze
[editovat | editovat zdroj]Verze produktu | Verze .NETu | 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 | 1.0 | MFC 7.0 (mfc70.dll) |
Visual C++ .NET 2003 | 1.1 | MFC 7.1 (mfc71.dll) |
Visual C++ 2005 | 2.0 | MFC 8.0 (mfc80.dll) |
Visual C++ 2005 Express | 2.0 | – |
Visual C++ 2008 | 3.5 | MFC 9.0 (mfc90.dll) |
Visual C++ 2010 | 4.0 | MFC 10.0 (mfc100.dll) |
Visual C++ 2012 | 4.5 | MFC 11.0 (mfc110.dll) |
Visual C++ 2013 | 4.5.1 4.5.2 |
MFC 12.0 (mfc120.dll) |
Visual C++ 2015 | 4.6 4.6.1 |
MFC 14.0 (mfc140.dll) |
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto ?lánku byl pou?it p?eklad textu z ?lánku Microsoft Foundation Class Library na anglické Wikipedii.
- ↑ Mark Andrews. Programujeme v jazyce Visual C++. P?íprava vydání Martina Mojzesová; p?eklad Pavel Ko?i?ka, Jan Bedna?ík; ilustrace Pavel Ko?i?ka, Jan Bedna?ík. 1. vyd. Praha: Computer Press, 1997. 387 s. ISBN 80-85896-91-5. Kapitola P?edstavuje se Visual C++, s. 10, 17. Obsahuje bibliografii a rejst?ík.