• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

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

    2018-7-6    seo達(dá)人

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

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

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


    藍(lán)藍(lán)設(shè)計(jì)m.lzhte.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)


    日歷

    鏈接

    個(gè)人資料

    存檔

    主站蜘蛛池模板: 亚洲男人的天堂2019| 国精品午夜福利视频不卡| 国产成人露脸自拍视频| 好吊妞欧美视频免费| 91精品国产无线乱码在线| 亚洲中国最大AV网站| 国产成人精品一区二区秒播| 91水蜜桃网站在线观看| 人妻AV无码AV中文AV日韩AV| 欧美亚洲色欲色一欲WWW| 无码日韩AⅤ一区二区三区| 午夜免费福利一区二区无码AV | 99久久免费精品特色大片| 精品久久久久久久久久香蕉| 久久午夜夜伦鲁鲁片免费无码影视 | 国产亚洲精品不卡在线| 天天综合色一区二区三区| 亚洲国产性夜夜综合| 亚洲不卡av中文在线| 国产99蜜臀视频精品免费视频| 久久久精品无码一区二区三区| 9191精品国产免费久久国语| 国产拳交| 肥城市| 999久久久免费精品国产牛牛| 日韩精品亚洲专在线电影| 国产一区二区四区不卡| 伊人久久大香线蕉AV一区| 99视频精品全部免费 在线| 91操碰| 国产综合无码一区二区辣椒| 中文字幕一区日韩精品| 色妞ww精品视频7777| 国产成人深夜午夜福利| 欧美日韩在线一区| 亚洲最大av一区二区三区| 久热精品视频天堂在线视频| 国产精品无码AⅤ在线观看播放| 国产精品久久久久免费a∨| 漳平市| 亚洲精品无码不卡在线播放he|