MFC,ATL,WTL的歷史沿襲

2021-06-14 04:55:26 字數 1284 閱讀 2133

需求推動了技術的發展,從mfc到atl,從atl再到wtl的發展歷程我想就是乙個最好的見證。

早期的vc++開發者們發現了mfc(microsoft foundation classes) 這樣乙個好東東。他們發現,mfc提供了乙個強大的類庫,很好的滿足了物件導向程式設計的需要。隨著泛型程式設計技術的發展和時間的推移,慢慢地,他們慢慢覺得mfc的類庫過於龐大和寬泛,而且它提供的模板庫只覆蓋了很有限的領域。於是,atl應運而生。

atl(active template library),簡稱活動模板庫。atl的設計者們通過它來它提供快速的com元件封裝。atl很好地體現了用模板進行程式設計的思想。如果模板設計得當,就很容易靈活的適應各種不同的需求,而且更容易跟進新技術的發展需求。

但是,作為泛型程式設計的愛好者們始終要面對的乙個主要難題,那就是如何方便地進行圖形使用者介面(gui)設計。因為atl只是提供了對win32/64視窗的低階封裝,因此atl的使用者們在用atl進行com開發的同時,不得不借助於mfc來進行com元件的ui程式設計。因為在gui方面,atl確實是愛莫能助。

wtl(windows template library)在體現模板程式設計思想的同時,對模板進行了很好的高階封裝,很好的滿足了ui程式設計的各種需求。這也是wtl設計者們的用意所在。在用wtl生成應用程式的時候不需要將dll檔案與exe檔案一起交付給使用者,而且,wtl又有很好的相容性。你可以將它與atl, stl, vc++ 資料模板,第三方模板,或者你自己的模板這幾種中的任何一種一起使用。正因為這些特點,使得當前wtl成為了大部分高階的c++開發者們進行ui設計時的首選。

從**的層面比較wtl與atl

win32/64 api 是由一系列c函式構成的集合,它覆蓋了com和window程式設計的大部分領域。atl是一系列的c++模板集,大部分是為com程式設計服務的。win32/64 api和atl都只是提供了對於ui程式設計的低階支援。如atl,wtl也是c++模板集,但是它很純粹地集中於對ui程式設計的高階支援。

wtl的功能體現和優勢.

wtl當前是第二個版本,第乙個是3.1版,第二是7.0版。wtl的功能主要體現在以下幾個方面:

· 提**用程式框架

· 提供對ui的高階支援

· 封裝window控制項,系統對話方塊以及gdi物件

它的優勢體現在:

不包含複雜的文件/檢視框架

具有源於mfc的基本的ui特性

提公升了一些mfc的特性(例如,更加靈活的切分視窗)

比靜態鏈結mfc的**要小的多

可對wtl進行bug修正,而不影響已存在的應用程式(mfc中如果通過替換mfc/crt的dll來修正乙個應用程式中的bug,往往會是另一應用程式崩潰)

MFC,ATL,WTL的歷史沿襲

需求推動了技術的發展,從mfc到atl,從atl再到wtl的發展歷程我想就是乙個最好的見證。早期的vc 開發者們發現了mfc microsoft foundation classes 這樣乙個好東東。他們發現,mfc提供了乙個強大的類庫,很好的滿足了物件導向程式設計的需要。隨著泛型程式設計技術的發展...

MFC,ATL,WTL的歷史沿襲

需求推動了技術的發展,從mfc到atl,從atl再到wtl的發展歷程我想就是乙個最好的見證。早期的vc 開發者們發現了mfc microsoft foundation classes 這樣乙個好東東。他們發現,mfc提供了乙個強大的類庫,很好的滿足了物件導向程式設計的需要。隨著泛型程式設計技術的發展...

牛頓的歷史

我不作假說。如果我比其他 人看得遠一些,那是因為我站在偉人的肩膀上的緣故。牛頓於西元 1642 年聖誕節,誕生於英國林肯郡的 沃爾斯索普 woolsthorpe 村,是個早產兒。從小體弱多病,他的父親是一位農夫,在牛頓出生之前二個月便去逝了,遺留下乙個農場。母親在其三歲之時 又改嫁他人,因此牛頓由其...