<thead id="kdfuf"><font id="kdfuf"></font></thead>
<samp id="kdfuf"></samp>
    <nav id="kdfuf"><strong id="kdfuf"></strong></nav>
      中文字幕无码一区二区三区在线,久久精品人人做人人爽,国产一级内射无挡观看,十八禁在线黄色网站,日韩欧美国产另类久久久精品 ,少妇人妻偷人精品一区二区,久久午夜视频,亚洲春色AⅤ无码专区

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

      2018-7-6    seo達人

      如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

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

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


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


      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.tuitetiyu.cn

      存檔

      主站蜘蛛池模板: 欧美日本一区二区三区| 久久精品五月天群交免费视频| 无码av不卡免费播放| 日本高清在线观看WWW色| 精品A级国产毛片| 德州市| 国产妺初次给了我在线观看| 久久亚洲精品无码GV| 国产萌白酱喷水视频在线观看| 陕西省| 国产女人被狂躁到高潮小说| 琪琪色原网站在线观看| 欧妇女乱妇女乱视频| 人人天天夜夜曰狠狠狠狠视频| 婷婷射精av这里只有精品| 91精品国产自在现不卡| 五十六十老熟女中文字幕免费| 国产成人官网免费福利| 亚洲欧美中文日韩国产| 五十老熟妇乱子伦免费观看| 亚洲欧美中文字幕在线一区| 人妻无码一区二区不卡无码av| 日韩欧美国产偷亚洲清高| 乐东| 国产人人在线成视频| 久久久精品人妻一区亚美研究所| 亚洲天堂成人黄色在线播放| 日韩女同一区二区三区久久 | 国产又粗又猛又大爽又黄| 久久久av男人的天堂| 亚洲国产精品一区二区www| 全国最大成人网站| 亚洲色欲综合色欲网| 日本三级韩国三级美三级91| 国产午夜免费高清视频| 亚洲av激情久久精品人| 国产精品网址在线观看你懂的| 日99久9在线 | 免费| 天天躁日日躁狠狠躁中字无码 | 亚洲欧美精品一区二区| 国产第一区二区三区精品|