青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-250  評論-20  文章-55  trackbacks-0

本文假設(shè)你熟悉C++和COM。

摘要:
??? ATL——活動(dòng)模板庫(The Active Template Library),其設(shè)計(jì)旨在讓人們用C++方便靈活地開發(fā)COM對象。ATL本身相當(dāng)小巧靈活,這是它最大的優(yōu)點(diǎn)。用它可以創(chuàng)建輕量級的,自包含的,可復(fù)用的二進(jìn)制代碼,不用任何附加的運(yùn)行時(shí)DLLs支持。
??? 由于COM技術(shù)良好的口碑,越來越多的程序員已經(jīng)走進(jìn)或正在走進(jìn)COM的編程世界。它就像盛夏里的冰鎮(zhèn)啤酒,從來不會(huì)讓你失望。可惜作為一個(gè)C++程序員來說,C++從不與我分享COM的極致以及我對COM的情有獨(dú)鐘。
??? C++與COM之間若即若離,和平共處,一次又一次在每個(gè)對象中用同樣簡潔的幾行代碼實(shí)現(xiàn)IUnknown。我敢肯定將來C++編譯器和鏈接器會(huì)實(shí)現(xiàn)C++對象和COM對象之間自然 的無意識(shí)的對應(yīng)和映射,目前這個(gè)環(huán)境只存在于實(shí)驗(yàn)室中,因此它肯定不是一個(gè)你我今天可以購買的產(chǎn)品。眼下可得到的最接近這個(gè)環(huán)境的東西就是活動(dòng)模板庫——ATL。

為什么使用ATL?
???
ATL是在單層(single-tier)應(yīng)用逐漸過時(shí),分布式應(yīng)用逐漸成為主流這樣一個(gè)環(huán)境中誕生的, 它最初的版本是在四個(gè)C++頭文件中,其中有一個(gè)還是空的。它所形成的出色的構(gòu)架專門用于開發(fā)現(xiàn)代分布式應(yīng)用所需的輕量級COM組件。作為一個(gè)模塊化的標(biāo)準(zhǔn)組件,ATL不像MFC有厚重的基礎(chǔ)結(jié)構(gòu),省時(shí)好用的庫使得成百上千的程序員一次又一次輕松實(shí)現(xiàn)IUnknown 和IClassFactory。
??? ATL的構(gòu)架并不打算包羅萬象,無所不能。其第一個(gè)版本對實(shí)現(xiàn)IUnknown,IClassFactory,IDispatch,IconnectionPointContainer及COM枚舉提供非常 到位的支持。第二個(gè)版本除了可以編寫ActiveX控件外,還對最初的第一個(gè)版本中ATL類進(jìn)行了增強(qiáng)。ATL不提供集合(collections)和串(strings)的處理 ,它假設(shè)你用標(biāo)準(zhǔn)的C++庫進(jìn)行這些處理;不支持ODBC——這個(gè)世界正在轉(zhuǎn)移到基于COM的不需要包裝的數(shù)據(jù)存取方式;不支持WinSock打包類--sockets本身也是新的東西;ATL也不支持完整的Win32 API打包類——ATL2.0的實(shí)現(xiàn)機(jī)制提供了對話框和WndProcs支持。此外ATL中沒有MFC中的文檔/視圖模型。取而代之的是ATL那更具伸縮性和靈活 性的通過COM接口(如ActiveX控件)與基于UI的對象之間的溝通模式。
??? 使用正確的工具非常關(guān)鍵。如果你正在編寫一個(gè)不可見的COM組件,那么ATL與MFC比起來,從開發(fā)效率,可伸縮性,運(yùn)行時(shí)性能以及可執(zhí)行文件大小各方面來看,ATL可能 都是最好的選擇。對于現(xiàn)代基于ActiveX控件的用戶界面,ATL所產(chǎn)生的代碼也比MFC更小更快。另一方面,與MFC的類向?qū)啾龋珹TL需要更多的COM知識(shí)。ATL與STL一樣,對于單層應(yīng)用沒什么幫助,而MFC在這方面保持著它的優(yōu)勢。
??? ATL的設(shè)計(jì)在很大程度上來自STL的靈感,STL與所有ANSI/ISO兼容的C++編譯器一起已經(jīng)被納入成為標(biāo)準(zhǔn)C++庫的一部分。像STL一樣,ATL大膽使用C++模板。模板是C++中眾多具有爭議的特性之一。每每使用不當(dāng)都會(huì)導(dǎo)致執(zhí)行混亂,降低性能 和難以理解的代碼。明智地使用模板所產(chǎn)生的通用性效果和類型安全特性則是其它方法所望塵莫及的。ATL與STL一樣陷入了兩個(gè)極端。幸運(yùn)的是 在L大膽使用C++模板的同時(shí),編譯器和鏈接器技術(shù)也在以同樣的步伐向前發(fā)展。為當(dāng)前和將來的開發(fā)進(jìn)行STL和ATL的合理選擇。
??? 盡管模板在內(nèi)部得到廣泛的使用,但是在用ATL技術(shù)時(shí),你不用去敲入或關(guān)心那些模板中的尖括弧。因?yàn)锳TL本身帶有ATL對象向?qū)В▍⒁妶D一):






圖一 ATL 對象向?qū)?br />

??? 對象向?qū)Мa(chǎn)生大量基于ATL模板類缺省的對象實(shí)現(xiàn)代碼(即框架代碼)。這些缺省的對象類型如附表一所列。ATL對象向?qū)г试S任何人 快速建立COM對象并且在分分鐘之內(nèi)讓它運(yùn)行起來,不用去考慮COM或ATL的細(xì)節(jié)問題。當(dāng)然,為了能充分駕馭ATL,你必須掌握C++,模板和COM編程技術(shù)。對于大型的對象類,只要在ATL對象向?qū)a(chǎn)生的缺省實(shí)現(xiàn)(框架代碼)中加入方法實(shí)現(xiàn)來輸出定制接口,這也是大多數(shù)開發(fā)人員開始實(shí)現(xiàn)COM對象時(shí)的重點(diǎn)所在。
??? 初次接觸ATL時(shí),其體系結(jié)構(gòu)給人的感覺是神秘和不可思議。HelloATL是一個(gè)最簡單的基于ATL的進(jìn)程內(nèi)服務(wù)器源代碼 以及用SDK(純粹用C++編寫)實(shí)現(xiàn)的同樣一個(gè)進(jìn)程內(nèi)服務(wù)器源代碼。在真正構(gòu)建出一個(gè)COM組件之前,代碼需要經(jīng)過反反復(fù)復(fù)多次斟酌和修改。對于想加速開發(fā)COM組件速度的主流組件開發(fā)人員來說,ATL體系結(jié)構(gòu)并不是什么大問題,因?yàn)閷ο笙驅(qū)Мa(chǎn)生了所需要的全部框架代碼,只 要你加入方法定義即可。對于認(rèn)真的COM開發(fā)人員和系統(tǒng)編程人員來說,ATL提供了一個(gè)用C++建立COM組件的高級的,可擴(kuò)展的體系結(jié)構(gòu)。一旦你理解和掌握了這個(gè)體系結(jié)構(gòu)并能駕馭對象向?qū)В憔蜁?huì)看到ATL的表現(xiàn)能力和強(qiáng)大的功能 ,它完全可以和原始的COM編程技術(shù)媲美。
??? 另外一個(gè)使用ATL開發(fā)COM組件的理由是Visual C++ 5.0+集成開發(fā)環(huán)境(IDE)對ATL的高度支持。 微軟在Visual C++ 5.0+中將ATL所要用到的接口定義語言(IDL)集成到了C++編輯器中。(待續(xù))

posted on 2007-03-12 10:01 jay 閱讀(420) 評論(0)  編輯 收藏 引用 所屬分類: ATL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久www成人免费毛片麻豆| 久久男人av资源网站| 欧美肥婆在线| 久久综合电影一区| 亚洲国产专区| 亚洲精品久久7777| 欧美日本高清| 另类图片国产| 日韩亚洲欧美在线观看| 亚洲美女av在线播放| 国产精品扒开腿做爽爽爽软件| 亚洲一区二区三区免费在线观看| 亚洲色在线视频| 国产精品一级| 欧美成人黑人xx视频免费观看| 欧美福利一区| 亚洲综合视频在线| 欧美一区二区三区视频免费播放| 伊人久久婷婷色综合98网| 亚洲第一免费播放区| 国产精品大片免费观看| 久久久99爱| 欧美精品97| 久久久久久网| 欧美日韩亚洲成人| 久久综合九色九九| 欧美日韩一区二区在线播放| 久久久久久九九九九| 欧美人与禽性xxxxx杂性| 久久精品动漫| 欧美激情国产日韩精品一区18| 欧美一区二区三区视频免费播放| 久久天堂av综合合色| 亚洲综合精品四区| 久久夜色精品国产欧美乱极品| 亚洲尤物精选| 免费在线视频一区| 久久久久国产一区二区| 欧美日韩在线一区二区| 欧美va日韩va| 国产亚洲一区二区在线观看 | 国产精品久久久久一区二区| 老司机成人网| 国产人成一区二区三区影院| 亚洲日本成人网| 在线观看不卡| 午夜免费久久久久| 亚洲午夜精品| 欧美二区不卡| 欧美成人免费va影院高清| 国产视频在线观看一区二区| 日韩视频中午一区| 亚洲精品一级| 久热精品在线| 每日更新成人在线视频| 国产伦精品一区二区三区免费迷| 99亚洲一区二区| 亚洲精品中文在线| 免费亚洲一区二区| 欧美a级一区| 伊人久久大香线蕉综合热线| 欧美在线观看视频一区二区三区| 羞羞视频在线观看欧美| 国产精品五月天| 亚洲在线观看免费视频| 午夜亚洲伦理| 国产女主播一区| 亚洲一区在线免费| 欧美一级视频精品观看| 国产精品入口尤物| 午夜视频在线观看一区二区三区| 亚洲欧美日韩天堂| 国产毛片久久| 久久久www成人免费毛片麻豆| 米奇777超碰欧美日韩亚洲| 韩国一区二区三区美女美女秀| 欧美一区二区在线播放| 久久亚洲精品视频| 亚洲激情校园春色| 欧美日韩精品| 亚洲欧美日本精品| 久久精品视频在线| 怡红院精品视频| 美玉足脚交一区二区三区图片| 亚洲国产精品一区二区第一页| 一本久道久久综合狠狠爱| 欧美日韩一区精品| 新狼窝色av性久久久久久| 免费久久99精品国产自| 亚洲欧洲精品一区二区| 欧美日韩久久久久久| 亚洲欧美日韩精品久久久| 麻豆91精品| 日韩香蕉视频| 国产一区二区成人| 欧美成人午夜77777| 亚洲一区一卡| 欧美成人一区二区三区在线观看| 一本色道久久综合亚洲精品按摩| 国产欧美丝祙| 老司机午夜精品| 日韩一级精品| 美女在线一区二区| 亚洲一区二区三区免费在线观看| 国内精品久久久| 欧美理论电影在线播放| 香蕉久久一区二区不卡无毒影院 | 亚洲精品国产日韩| 亚洲欧洲av一区二区| 在线日本成人| 国产精品进线69影院| 免费在线视频一区| 欧美一级黄色录像| 亚洲精品视频免费在线观看| 久久青青草综合| 亚洲一区二区日本| 亚洲欧洲日本专区| 韩国精品一区二区三区| 国产精品ⅴa在线观看h| 欧美国产日韩视频| 久久色在线播放| 欧美亚洲视频在线看网址| 一区二区三区国产| 亚洲国产精品va在线看黑人| 久久亚洲色图| 欧美在线观看视频在线| 亚洲一区二区视频在线观看| 亚洲国产成人精品女人久久久 | 欧美激情区在线播放| 久久精品视频99| 亚洲免费在线播放| 一本久道久久综合中文字幕| 亚洲高清视频中文字幕| 蜜桃久久精品乱码一区二区| 欧美在线视频在线播放完整版免费观看 | 亚洲高清不卡在线观看| 国产一区二区三区久久久| 国产精品一区二区久久久久| 国产精品二区三区四区| 欧美久久一区| 欧美日韩激情网| 欧美日韩午夜在线视频| 欧美日产国产成人免费图片| 欧美黄色免费| 欧美—级高清免费播放| 欧美欧美全黄| 欧美日韩一区二区三区| 欧美特黄一级| 国产精品激情| 国产免费观看久久黄| 国产欧美日韩精品一区| 国产一区91精品张津瑜| 极品av少妇一区二区| 精品二区久久| 亚洲激情午夜| 在线视频精品| 午夜精品久久久久久久久久久久久 | 欧美亚洲专区| 久久久999精品免费| 麻豆成人综合网| 欧美国产日韩在线观看| 亚洲欧洲精品一区二区三区| 亚洲乱码国产乱码精品精可以看| 一本色道久久综合精品竹菊| 亚洲一区二区三区成人在线视频精品| 亚洲欧美日韩专区| 久久蜜臀精品av| 欧美精品在线观看一区二区| 欧美性大战久久久久久久| 国产亚洲激情视频在线| 亚洲激情校园春色| 亚洲欧美日韩精品一区二区| 久久久久久久久一区二区| 猛干欧美女孩| 一区二区三区高清在线| 久久国产精品免费一区| 欧美国产日韩在线| 国产欧美日韩另类视频免费观看 | 欧美成人午夜激情在线| 国产精品卡一卡二卡三| 激情丁香综合| 亚洲一区欧美一区| 免费欧美高清视频| 一区二区三区国产在线| 久久综合网络一区二区| 国产精品视频观看| 亚洲国产精品va在线观看黑人| 亚洲永久免费视频| 欧美黑人多人双交| 亚洲欧美日韩精品久久久| 母乳一区在线观看| 国产一区清纯| 亚洲免费婷婷| 亚洲承认在线| 欧美专区第一页| 欧美视频中文字幕在线| 亚洲精品免费在线播放| 久久久久久一区二区三区| 99精品国产高清一区二区| 另类av一区二区|