微軟軟體開發技術二十年回顧 MFC篇

2022-02-25 21:43:34 字數 1549 閱讀 2678

三、 mfc篇

windows api是面向過程的介面,因此對於當時的程式設計技術來說,它是完美無缺的。但是,隨著人們逐漸使用c++進行windows程式的開發,迫切需要建立與windows api的物件導向包裝的介面。2023年,微軟將windows api開發成為它的應用程式框架(afx),後來該產品又演變成為目前的微軟基礎類庫(mfc)產品。下圖2展示了mfc的頂級類層次結構。

圖2.mfc的類層次結構。

mfc為使用c++開發windows gui應用程式提供了乙個十分全面的基礎框架,它對以前的api進行了物件導向的科學包裝,大大簡化和加快了程式的開發。

win95推出後出現在visual c++ 4中的新版本的mfc 4.0使這個框架達到輝煌時期,在4.2版本時達到鼎盛。

mfc框架中引入了一種適應當時開發需求的典型的文件-檢視機制,從而大大簡化了程式開發。當然,要掌握這些框架結構絕非一日之功,其中還涉及到部分com及大量的巨集技術。也正由於這些方面,導致了業界對mfc的褒貶不一。但正如其它微軟技術一樣,這只能進一步促進微軟繼續改進這種技術。幾十年的技術積累已經奠定了mfc的生存基礎,即使windows的vista發布,mfc也不可能退出windows的舞台。事實上,vista之後的visual studio.net仍將mfc作為乙個重要的組成部分,在今年的visual studio.net 2005中,mfc在c++中的位置依然如故。mfc的未來,應該不必擔心,只要你深入考察.net類庫,你會發現,mfc的許多思想機制正悄然進入.net。

新版的visual c++.net中mfc已經支援.net開發了,而且mfc與atl的協作更趨於和諧。如今你可以在visual c++.net中綜合應用mfc、atl與.net庫三者來開發應用程式,從而進一步增強c++開發的威力。

【補注】atl框架與wtl框架

atl即「activex模板庫」。它不能單獨工作,是設計與visual c++ v4.2,v5.0,v6.0一起工作的。

mfc和atl都可以用來開發activex控制項。事實上,兩者都支援各種開發嚮導和強有力的幫助類和模板,從而使控制項的開發盡量簡單。而且,這兩種框架各有千秋。簡言之,如果你相當熟悉mfc的各種機制而且是在建立龐大而成熟的圖形應用程式本地控制項或伺服器控制項,那麼使用mfc書寫控制項時會有很大的優越性。

然而,用mfc建立的控制項在執行時要求相應的mfc dll支援,相應地導致體積龐大。如果在控制項的規模成問題時,則可以考慮 使用另一種方法-atl活動模板庫。

在建立輕量級控制項(幾乎或根本沒有使用者介面要求的com或dcom伺服器)時,atl方法是mfc方法的替代方法。atl在建立com元件時使用了模板機制,這個框架對許多標準的com介面提供了大量的模板。事實上,atl根本不需要任何型別的執行時刻服務—由於以c++模板為基礎,所以atl對於外部庫根本沒有鏈結依賴性。因此,基於atl的元件要比等價的基於mfc的控制項占用的資源少。

wtl框架,作為atl的擴充套件,也是由atl小組開發的,包含在微軟於2023年1月發布的開發平台sdk包中,雖然微軟沒有正式支援。wtl通過提供乙個用於編寫win32應用程式和控制項的輕量級的框架、一些特殊的檢視、gdi物件和實用的類來擴充套件atl視窗類。wtl的目標是成為最好和最簡單的實現基於win32和atl的應用程式、伺服器和控制項的方法。

微軟軟體開發制度簡介

c 程式設計論壇 軟體工程思想 it專案管理 微軟軟體開發制度簡介 微軟的開發專案一般都會包括三種不同的主管,其中 專案經理 project lead 他是專案的主要負責人,同時負責擬定程序,監督工作確實按程序進行,確保所有的工作都走上軌道,不出紕漏,訓練程式設計師,負責向高階主管報告本專案的狀況。...

微軟軟體 Office Accounting

office accounting express 2007其口號是 office accounting express 2007是隨著越來越多的面向小企業主的軟體成為免費軟體,微軟如何改變其業務模式的乙個例子。它還將被整合在small business professional office ul...

微軟軟體 Office Accounting

office accounting express 2007其口號是 office accounting express 2007是隨著越來越多的面向小企業主的軟體成為免費軟體,微軟如何改變其業務模式的乙個例子。它還將被整合在small business professional office ul...