MFC
WinOS下開發人員使用的專業C SDK,MFC作為與VC 血肉相連的部分,(注意C 和VC 的區別:C 是一種程式設計語言,是一種大家都承認的軟體編制的通用規範,而VC 只是一個編譯器,或者說是編譯器 源程式編輯器的IDE,WS,PlatForm,這同於Pascal和Dephi,Pascal是Dephi的語言基礎,Dephi使用Pacal規範來進行Win下應用程式的開發和編譯。卻不同於Basic語言和VB的關係,Basic語言在VB開發出來被套用的年代已經成了Basic語言的新規範,VB新加的Basic語言要素,如面對對象程式設計的要素,是一種性質上的飛躍,使VB既是一個IDE,又出長成一個新的程式設計語言,)同BC 集成的一個框架一樣(名稱查詢中。。)是一個非外掛式的軟體包,類倉庫,開發平台,這些類是微軟為VC 專配的,MFC是WinAPI與C 的結合,{(API,即[微軟提供的WinOS下]應用程式的[程式語言]接口),是一種軟體編程的規範,便不是一種程式開發語言本身,可以讓用戶使用各種各樣的第三方[我是一方,微軟是一方,Borland就是第三方]的程式語言來進行對WinOS下應用程式的開發,使這些被開發出來的應用程式能很好地在WinOS下運行,只要它們是接受和遵循API規範的,[這其實也是一種必要,微軟如果不提供API,這個世上對Win編程的工作就不會存在,微軟的產品就會迅速從時尚變成垃圾],VB,VC,BC,BCB,VCB,Dehpi應用程式本質上全部運行於API機制,工作在WinOS的訊息機制和繪圖裡,遵守WinOS作為一個作業系統的內部實現,},是對API函式的專用C 封裝,這種結合一方面讓用戶使用微軟的專業C SDK來進行Win下應用程式的開發變得容易,因為MFC是對API的封裝,微軟做了大量的工作,隱藏了好多內節程式開發人員在Win下用C &MFC編制軟體時的大量內節,如應用程式實現訊息的處理,設備環境繪圖,這種結合是以方便為目的的,必定要付出一定代價,(這是微軟的一向作風)因此就造成了MFC對類封裝中的一定程度的的冗餘和迂迴,但這是可以接受的
MFC不只是一套微軟提供下的一個Win下C 的開發平台,也不只是一個功能單純的界面開發系統,它提供的類絕大部分用來進行界面開發,關聯一個視窗的動作,但它提供的類中有好多類不與一個視窗關聯,即類的作用不是一個界面類,不實現對一個視窗對象的控制(如創建,銷毀),而是一些在WinOS(用MFC編寫的程式絕大部分都在WinOS中運行)中實現內部處理的類,如資料庫的管理類等,學習中最應花費時間的是訊息和設備環境,學習C 最難的部分是指針,C 面向對像程式設計的其它部分,如數據類型,流程控制都不難,建議學習數據結構C 版;
歷史
MFC是在1992年的Microsoft16位版的C/C++編譯器的7.0版本中作為一個擴展輕量級的WindowsAPI面向對象的C++封裝庫而引入的。此時,C++因為它在和API方面的卓越表現,剛剛開始被用來取代C套用於開發商用軟體。因此,他們推出了替代早期的老式的字元界面的集成開發環境(IDE)的PWB。
有趣的是,MFC使用“Afx”作為所有的函式,宏及標準預編譯頭檔案名稱的前綴。因為在MFC的早期開發階段它叫“ApplicationFrameworkExtensions”縮寫為“Afx”。MFC這個名字被採用得太晚了以至於沒來得及修改這些引用。
最近,MFC8.0和VisualStudio2005一起發布了;MFC9.0和VisualStudio2008一起發布。在免費的Express版本的VisualStudio2005/2008中沒有包含MFC。
作為一個強有力的競爭對手,為Borland的TurboC++編譯器設計OWL(ObjectWindowsLibrary)在同一時間也發布了。但最後,Borland停止了對OWL的繼續開發並且不久就從Microsoft那裡購買了MFC頭檔案,動態程式庫等的授權,微軟沒有提供完整的MFC的集成支持。之後Borland發布了VCL(VisualComponentLibrary)來替換OWL框架。