嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

什么是ATL? (與COM的關系,及MFC與COM的關系)

2018-7-6    seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

摘要: 什么是ATL(與COM的關系,及MFC與COM的關系)自從1993年Microsoft首次公布了COM技術以后,Windows平臺上的開發模式發生了巨大的變化,以COM為基礎的一系列軟件組件化技術將Windows編程帶入了組件化時代。廣大的開發人員在為COM帶來的軟件組件化趨勢歡欣鼓舞的同時,對于COM開發技術的難度和煩瑣的細節也感到極其的不便。COM編程一度被視為一種高不可攀的技術,令人望而卻步

什么是ATL (與COM的關系,及MFC與COM的關系)
自從1993年Microsoft首次公布了COM技術以后,Windows平臺上的開發模式發生了巨大的變化,以COM為基礎的一系列軟件組件化技術將Windows編程帶入了組件化時代。廣大的開發人員在為COM帶來的軟件組件化趨勢歡欣鼓舞的同時,對于COM開發技術的難度和煩瑣的細節也感到極其的不便。COM編程一度被視為一種高不可攀的技術,令人望而卻步。開發人員希望能夠有一種方便快捷的COM開發工具,提高開發效率,更好地利用這項技術。
針對這種情況,Microsoft公司在推出COMSDK以后,為簡化COM編程,提高開發效率,采取了許多方案,特別是在MFC(MicrosoftFoundationClass)中加入了對COM和OLE的支持。但是隨著Internet的發展,分布式的組件技術要求COM組件能夠在網絡上傳輸,而又盡量節約寶貴的網絡帶寬資源。采用MFC開發的COM組件由于種種限制不能很好地滿足這種需求,因此Microsoft在1995年又推出了一種全新的COM開發工具ATL。
ATL是ActiveX Template Library的縮寫,它是一套C++模板庫。使用ATL能夠快速地開發出、簡潔的代碼(Effectiveand Slimcode),同時對COM組件的開發提供最大限度的代碼自動生成以及可視化支持。為了方便使用,從MicrosoftVisual C++ 5.0版本開始,Microsoft把ATL集成到VisualC++開發環境中。1998年9月推出的Visual Studio 6.0 集成了ATL3.0版本。目前,ATL已經成為Microsoft標準開發工具中的一個重要成員,日益受到C++開發人員的重視。
ATL究竟給開發人員帶來了什么樣的益處呢?這還要先從ATL產生以前的COM開發方式說起。
在ATL產生以前,開發COM組件的方法主要有兩種:一是使用COMSDK直接開發COM組件,另一種方式是通過MFC提供的COM支持來實現。
直接使用COMSDK開發COM組件是最基本也是最靈活的方式。通過使用Microsoft提供的開發包,我們可以直接編寫COM程序。但是,這種開發方式的難度和工作量都很大,一方面,要求開發者對于COM的技術原理具有比較深入的了解(雖然對技術本身的深刻理解對使用任何一種工具都是非常有益的,但對于COM這樣一整套復雜的技術而言,在短時間內完全掌握是很難的),另一方面,直接使用COMSDK要求開發人員自己去實現COM應用的每一個細節,完成大量的重復性工作。這樣做的結果是,不僅降低了工作效率,同時也使開發人員不得不把許多精力投入到與應用需求本身無關的技術細節中。雖然這種開發方式對于某些特殊的應用很有必要,但這種編程方式并不符合組件化程序設計方法所倡導的可重用性,因此,直接采用COMSDK不是一種理想的開發方式。
使用MFC提供的COM支持開發COM應用可以說在使用COMSDK基礎上提高了自動化程度,縮短了開發時間。MFC采用面向對象的方式將COM的基本功能封裝在若干MFC的C++類中,開發者通過繼承這些類得到COM支持功能。為了使派生類方便地獲得COM對象的各種特性,MFC中有許多預定義宏,這些宏的功能主要是實現COM接口的定義和對象的注冊等通常在COM對象中要用到的功能。開發者可以使用這些宏來定制COM對象的特性。
另外,在MFC中還提供對Automation 和 ActiveXControl的支持,對于這兩個方面,VisualC++也提供了相應的AppWizard和ClassWizard支持,這種可視化的工具更加方便了COM應用的開發。
MFC對COM和OLE的支持確實比手工編寫COM程序有了很大的進步。但是MFC對COM的支持是不夠完善和徹底的,例如對COM接口定義的IDL語言,MFC并沒有任何支持,此外對于近些年來COM和ActiveX技術的新發展MFC也沒有提供靈活的支持。這是由MFC設計的基本出發點決定的。MFC被設計成對Windows平臺編程開發的面向對象的封裝,自然要涉及Windows編程的方方面面,COM作為Windows平臺編程開發的一個部分也得到MFC的支持,但是MFC對COM的支持是以其全局目標為出發點的,因此對COM的支持必然要服從其全局目標。從這個方面而言,MFC對COM的支持不能很好的滿足開發者的要求。
隨著Internet技術的發展,Microsoft將ActiveX技術作為其網絡戰略的一個重要組成部分大力推廣,然而使用MFC開發的ActiveXControl,代碼冗余量大(所謂的“肥代碼 FatCode”),而且必須要依賴于MFC的運行時刻庫才能正確地運行。雖然MFC的運行時刻庫只有部分功能與COM有關,但是由于MFC的繼承實現的本質,ActiveXControl必須背負運行時刻庫這個沉重的包袱。如果采用靜態連接MFC運行時刻庫的方式,這將使ActiveXControl代碼過于龐大,在網絡上傳輸時將占據寶貴的網絡帶寬資源;如果采用動態連接MFC運行時刻庫的方式,這將要求瀏覽器一方必須具備MFC的運行時刻庫支持。總之MFC對COM技術的支持在網絡應用的環境下也顯得很不靈活。
解決上述COM開發方法中的問題正是ATL的基本目標。
首先ATL的基本目標就是使COM應用開發盡可能地自動化,這個基本目標就決定了ATL只面向COM開發提供支持。目標的明確使ATL對COM技術的支持達到淋漓盡致的地步。對COM開發的任何一個環節和過程,ATL都提供支持,并將與COM開發相關的眾多工具集成到一個統一的編程環境中。對于COM/ActiveX的各種應用,ATL也都提供了完善的Wizard支持。所有這些都極大地方便了開發者的使用,使開發者能夠把注意力集中在與應用本身相關的邏輯上。
其次,ATL因其采用了特定的基本實現技術,擺脫了大量冗余代碼,使用ATL開發出來的COM應用的代碼簡練,即所謂的“SlimCode”。ATL在實現上盡可能采用優化技術,甚至在其內部提供了所有C/C++開發的程序所必須具有的C啟動代碼的替代部分。同時ATL產生的代碼在運行時不需要依賴于類似MFC程序所需要的龐大的代碼模塊,包含在最終模塊中的功能是用戶認為最基本和最必須的。這些措施使采用ATL開發的COM組件(包括ActiveXControl)可以在網絡環境下實現應用的分布式組件結構。
第三,ATL的各個版本對Microsoft的基于COM的各種新的組件技術如MTS、ASP等都有很好的支持,ATL對新技術的反應速度大大快于MFC。ATL已經成為Microsoft支持COM應用開發的主要開發工具,因此COM技術方面的新進展在很短的時間內都會在ATL中得到反映。這使開發者使用ATL進行COM編程可以得到直接使用COMSDK編程同樣的靈活性和強大的功能。
本文的目的就是希望在有限的篇幅中能夠使讀者對ATL的使用和基本原理有一個初步的了解,為廣大的COM開發人員更好地使用ATL開發起到拋磚引玉的作用。


藍藍設計www.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


日歷

鏈接

個人資料

藍藍設計的小編 http://www.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 国产亚洲在线观看| 亚洲一级一区| 亚洲午夜伦理| 一区二区三区四区五区视频| 极品裸体白嫩激情啪啪国产精品| 欧美日韩另类一区| 国产精品乱人伦中文| 欧美色综合网| 欧美日韩一区二区三区| 国产精品成人观看视频国产奇米| 欧美剧在线观看| 欧美性开放视频| 国产精品a久久久久| 99re热这里只有精品视频| 99国产精品国产精品久久 | 亚洲国产另类 国产精品国产免费| 欧美福利小视频| 欧美精品在线播放| 国产精品少妇自拍| 亚洲成人自拍视频| 午夜精品成人在线视频| 免费在线观看一区二区| 欧美午夜免费| 亚洲激情国产| 午夜精品影院| 亚洲人人精品| 久久久久久久尹人综合网亚洲| 欧美va天堂va视频va在线| 欧美午夜精品久久久久久人妖 | 亚洲免费电影在线| 亚洲一区图片| 欧美另类视频| 一区二区三区www| 亚洲国产成人精品久久| 欧美一区二区三区免费观看| 中日韩美女免费视频网址在线观看| 久久国产精品99精品国产| 国产精品天天摸av网| 亚洲高清影视| 亚洲福利在线观看| 欧美承认网站| 欧美日韩国产成人在线91| 老司机精品福利视频| 免费在线看一区| 欧美一区二区三区免费视| 亚洲激情偷拍| 香蕉久久精品日日躁夜夜躁| 99精品久久免费看蜜臀剧情介绍| 亚洲人成在线观看| 亚洲午夜激情网页| 欧美偷拍一区二区| 亚洲影视九九影院在线观看| 久久在线免费| 亚洲精品中文字| 亚洲人体1000| 欧美三级在线视频| 久久人人超碰| 国产欧美一区二区色老头 | 欧美一级视频一区二区| 亚洲伦理中文字幕| 午夜亚洲伦理| 久久久久高清| 一区二区三区精品国产| 午夜精品国产精品大乳美女| 国产一区二区精品久久91| 亚洲国产导航| 激情综合在线| 欧美亚洲日本网站| 亚洲人被黑人高潮完整版| 一区二区三区|亚洲午夜| 狠狠色2019综合网| 一本久久a久久精品亚洲| 欧美一级片一区| 久久久久久香蕉网| 91久久精品国产91性色| 黄色在线一区| 久久精品国产99精品国产亚洲性色| 亚洲视频在线看| 欧美国产三级| 亚洲精品乱码久久久久| 日韩一二三在线视频播| 欧美国产日韩xxxxx| 亚洲国产另类精品专区| 亚洲国产一区视频| 欧美日韩激情小视频| 欧美高潮视频| 日韩一区二区免费高清| 国产精品高潮呻吟| 亚洲欧美视频在线| 久久国产乱子精品免费女| 国内精品国产成人| 模特精品在线| 亚洲免费视频观看| 免费观看亚洲视频大全| 亚洲精品韩国| 韩国欧美国产1区| 欧美人与禽猛交乱配| 亚洲视频精品| 亚洲成色www久久网站| 午夜精品一区二区在线观看| 香港久久久电影| 精品二区视频| 国产精品久久毛片a| 久久久久久九九九九| 亚洲午夜激情网站| 亚洲欧洲在线播放| 老司机精品视频一区二区三区| 99视频有精品| 国内久久精品| 国产日韩一级二级三级| 欧美人在线视频| 亚洲第一毛片| 伊人狠狠色j香婷婷综合| 国产精品成人v| 国产精品亚洲综合久久| 欧美日韩亚洲一区在线观看| 欧美国产一区二区| 欧美日韩国产精品一区| 欧美日韩国产va另类| 欧美va亚洲va国产综合| 久久美女性网| 欧美成人小视频| 欧美日本在线播放| 欧美日韩精品欧美日韩精品| 欧美激情视频一区二区三区在线播放 | 狼人天天伊人久久| 久久午夜羞羞影院免费观看| 久久国产精品一区二区三区| 欧美一区二区在线观看| 久久国产精品久久w女人spa| 欧美一区二区三区在线| 久久综合国产精品台湾中文娱乐网| 欧美亚洲综合久久| 国产农村妇女精品一二区| 国产精品成人在线观看| 黄色精品一区二区| 一区二区三区日韩在线观看 | 久久九九精品99国产精品| 欧美亚洲一区二区三区| 欧美激情aaaa| 伊人成人在线视频| 亚洲自拍都市欧美小说| 久久精品一本久久99精品| 亚洲国产成人久久综合| 夜久久久久久| 欧美激情精品久久久久久久变态| 中文欧美在线视频| 欧美专区在线观看一区| 欧美视频在线免费| 亚洲图片激情小说| 亚洲高清在线观看一区| 久久精品伊人| 黄色成人在线观看| 久久偷窥视频| 久久午夜精品一区二区| 国产一区二区三区在线观看精品| 一区二区三区欧美激情| 亚洲人成网站精品片在线观看 | 亚洲国产高清在线| 久久久女女女女999久久| 亚洲男人第一av网站| 国产精品五区| 久久成人免费电影| 欧美一区激情| 亚洲日韩视频| 亚洲欧美日韩国产中文在线| 欧美日韩天堂| 欧美在线播放| 美脚丝袜一区二区三区在线观看| 在线国产精品播放| 亚洲欧洲三级| 国产精品专区h在线观看| 久久九九99视频| 蜜桃av一区| 欧美在线免费观看亚洲| 美日韩丰满少妇在线观看| 亚洲一二三区在线观看| 久久精品中文字幕一区| 在线综合亚洲| 久久一区二区三区四区五区| 一本色道88久久加勒比精品| 久久久久久久精| 亚洲小说区图片区| 欧美国产视频在线观看| 久久精品一二三| 国产精品夜色7777狼人| 亚洲精品自在久久| 在线观看视频一区二区欧美日韩| 亚洲欧洲一区二区三区| 精久久久久久| 欧美一区二区三区播放老司机| 亚洲视频综合| 欧美三区在线| 一本色道久久加勒比精品| 亚洲欧洲一区二区三区久久| 欧美在线啊v| 久久久国产91| 国产一区二区无遮挡| 欧美一区综合| 美女国内精品自产拍在线播放|