董振華
(吉林司法警官職業(yè)學(xué)院,長春130062)
MFC,是MicrosoftFoundationClass的英文縮寫或簡稱,它的中文含義是微軟基礎(chǔ)類。它是微軟公司自主研發(fā)的一套能夠在開發(fā)在Windows操作系統(tǒng)上運行的平臺軟件的類庫。MFC封裝了大部分的Windows應(yīng)用程序開發(fā)接口函數(shù),換言之,它是微軟公司開發(fā)的一個軟件平臺研發(fā)的集成開發(fā)環(huán)境,可以使用MFC進(jìn)行編譯、調(diào)試,而不需要使用其他多種工具互相配合操作,因此它具有極大的便利性和靈活性。它是一套能夠?qū)?shù)據(jù)管理和顯示相分離開來的應(yīng)用框架,在C++編程語言里如果新建一個MFC工程的話,開發(fā)環(huán)境或者說是軟件會自動生成許多不同格式的文件,有點類似于JAVA語言的三大框架(Struts、Hibernate和Spring)。它也是一種面向?qū)ο箢愋偷慕?jīng)過封裝了的C++語言類庫。一般來說,MFC通常包括兩部分的內(nèi)容,第一部分就是常見的或者常用的C++類庫,它被認(rèn)為是MFC類庫的主體部分,第二部分就是在MFC中已經(jīng)定義好的各種全局變量、全局函數(shù)以及宏等,它被視作MFC編程類庫的輔助部分。雖然這兩部分有所分工,但實際上它們作為MFC重要的組成部分,是在Windows操作平臺上進(jìn)行軟件開發(fā)所必不可少的組塊。
MFC利用面向?qū)ο蟮脑戆褟?fù)雜的API有邏輯地組織起來,使得MFC具有面向?qū)ο缶幊陶Z言的所有基本性質(zhì),即繼承化、封裝化、抽象化、模塊化、多態(tài)性。MFCObject和Windows Object是不一樣的,但兩者之間的聯(lián)系緊密。MFCObject相對系統(tǒng)的其他進(jìn)程來說是不可用或者是不可見的,但是Windows Object不同于它,一旦被創(chuàng)建之后,它的句柄是整個Windows系統(tǒng)全局的,換句話說就是整個系統(tǒng)或者程序都能對其進(jìn)行調(diào)用,其他進(jìn)程可以使用一些句柄。最典型的就是,一個進(jìn)程窗口句柄可以被另一進(jìn)程所獲取,并同時能夠給該窗口發(fā)送一些消息,使得調(diào)用MFCObject的成員函數(shù)能夠創(chuàng)建相應(yīng)的WindowsObject,因而也就使得MFC的句柄變量存儲的就是一個有效句柄。除了上述這些,MFC類庫還有著其獨特有的文檔、試圖體系基本結(jié)構(gòu)以及包含根類、應(yīng)用程度類和命令發(fā)送類三者的分層結(jié)構(gòu)。因此,它除了具有面向?qū)ο缶幊陶Z言的基本性質(zhì)之外,還有著與WindowsObject的千絲萬縷的聯(lián)系,還具有其特有的文檔、試圖體系基本結(jié)構(gòu)以及分層結(jié)構(gòu)。
作為重要的系統(tǒng)開發(fā)環(huán)境和工具,ObjectARX能夠與MFC充分結(jié)合起來。編程人員可以充分利用ObjectARX對編程環(huán)境的支持,選用常見的而向?qū)ο蟮膽?yīng)用程序。具體地說,ARX應(yīng)用程序經(jīng)過處理之后將不會再是一個獨立的應(yīng)用進(jìn)程,它將成為一個動態(tài)化的鏈接庫。ARX程序能夠與AutoCAD在同一地址空間上同步運行,也就是ARX能夠直接把AutoCAD的內(nèi)核代碼進(jìn)行利用,進(jìn)而可以直接訪問無須其他操作AutoCAD的圖形系統(tǒng)、基本數(shù)據(jù)庫及幾何基本常用的造型核心數(shù)據(jù)。在運行期間,ARX能夠?qū)崟r擴(kuò)展AutoCAD所具有的功能及其基本類,建立其與AutoCAD與固有命令操作方式不太相同的命令新的命令形式。由于采用了與第一代和第二代開發(fā)工具完全不同的運行機(jī)制,ARX應(yīng)用程序在運行速度和程序功能上都較前者有著巨大的提升。顯得更重要的是,開發(fā)ARX應(yīng)用程序還可以充分利用Windows平臺開發(fā)運行的資源、微軟的基本類庫MFC( MicrosoftFoundationClass)。它是先進(jìn)的C++可視化集成后的編程環(huán)境和工具,能夠快捷、方便、高效地設(shè)計具有Windows典型平臺風(fēng)格的計算機(jī)輔助設(shè)計類應(yīng)用程序。此外,應(yīng)用MFC可以簡化對應(yīng)用程序的編寫方式,同時還能減少編程開發(fā)者的代碼編寫工作量。事實上,由于windows操作系統(tǒng)平臺有著Microsoft公司強(qiáng)大技術(shù)實力的支持,使得MFC類庫幾乎能夠提供所有對通用計算機(jī)IT技術(shù)的平臺支持,例如對常見的數(shù)據(jù)庫、網(wǎng)絡(luò)、Web功能和多媒體的基本支持。因此,在某種程度上可以說CAD軟件開發(fā)者的唯一最好的選擇就是用MFC開發(fā)Windows應(yīng)用程序進(jìn)行二次開發(fā)。
滑動軸承軟件被認(rèn)為是一個典型的多視圖單文檔類應(yīng)用程序。該應(yīng)用程序的主要計算過程是利用了MFC面向?qū)ο蟮姆椒?,通過將以往編制的各種常用的計算程序進(jìn)行集成來實現(xiàn)的,它的設(shè)計風(fēng)格或多或少也參照了當(dāng)前比較流行的類似QQ抽屜菜單效果。這個應(yīng)用程序充分利用了MFC面向?qū)ο蟮脑O(shè)計思想,按照所要求實現(xiàn)的功能來設(shè)計基本類的結(jié)構(gòu),當(dāng)然,計算各種軸承相關(guān)的靜、動特性系數(shù)時,所采用的相應(yīng)的獨立計算程序是用有限元法編寫的。因此,為了更好的在MFC界面設(shè)計中將這些獨立的程序進(jìn)行應(yīng)用,以便在實際中能夠?qū)⑵溆糜诟鞣N軸承形式的計算,這就無疑需要按照不同軸承的類別將這些應(yīng)用程序簡單的封裝為各種不同的類,進(jìn)一步通過定義不同類別對象來完成不同軸承類別的基本計算過程,這就是面向?qū)ο筮@一常用的設(shè)計思想的精髓。另外,由于滑動軸承系統(tǒng)的開發(fā)所采用得面向?qū)ο蠹夹g(shù)是具有開放式特性的,因此在一定程度上該應(yīng)用程序比較容易進(jìn)行擴(kuò)充,這就為后續(xù)的二次開發(fā)奠定了良好的基礎(chǔ),為以后節(jié)省成本開支埋下了伏筆。
目前MFC技術(shù)存在著一些缺陷,比如說靈活性不夠。解決這一類缺陷的基本做法是不斷更新MFC類庫,將越來越多的應(yīng)用廣泛裝到MFC類庫中,并及時提供相應(yīng)的最新下載版本。MFC類庫還存在所支持平臺單一的不足,不能夠像JAVA那樣實現(xiàn)跨平臺、多平臺的應(yīng)用。對于這類基本缺陷,最好的解決辦法是實現(xiàn)MFC的跨平臺應(yīng)用。只有解決了上述常見弊端,MFC在軟件開發(fā)領(lǐng)域中的應(yīng)用將會越來越廣泛,相應(yīng)的平臺開發(fā)者才能取得更多的收益。
MFC是重要的集成化編程開發(fā)環(huán)境或者工具,它在實際開發(fā)中應(yīng)用比較寬泛。但是它自身也存在著些許不足,如果MFC平臺開發(fā)者能夠及時解決這些缺陷或者不足的話,相信未來MFC在軟件開發(fā)領(lǐng)域的路途將會是一片坦蕩。
[1]車忠志,孫雪雁.MFC應(yīng)用程序基本框架分析[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2012,(09): 145-147.
[2]劉連喜,徐惠民.MFC框架中的設(shè)計模式分析[J].計算機(jī)應(yīng)用與軟件,2013,22(09):50-52.