日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[COM/ATL]组件、对象、MFC、ATL的区别

發(fā)布時間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [COM/ATL]组件、对象、MFC、ATL的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

組件(Component)和對象(Object)之間的區(qū)別

先明確組件(Component)和對象(Object)之間的區(qū)別。組件是一個可重用的模塊,它是由一?組處理過程、數(shù)據(jù)封裝和用戶接口組成的業(yè)務(wù)對象(Rules?Object)。組件看起來像對象,但不符合對象的學(xué)術(shù)定義。它們的主要區(qū)別是:?

?

  • 組件可以在另一個稱為容器(有時也稱為承載者或宿主)的應(yīng)用程序中使用,也可以作為獨立過程使用;?
  • 組件可以由一個類構(gòu)成,也可以由多個類組成,或者是一個完整的應(yīng)用程序;?
  • 組件為模塊重用,而對象為代碼重用。現(xiàn)在,比較流行的組件模型有COMComponent?Objiect?Module,對象組件模型)/DCOM(?Distributed?COM,分布式對象組件模型)和CORBACommon?Object?Request?Broker?Architecture,公共對象請求代理體系結(jié)構(gòu))。到這里,已經(jīng)出現(xiàn)了與本文相關(guān)的主題COM,而CORBA與本文無關(guān),就不作介紹。?
  • ?

    MFCATL之間的不同

    目前MFCATL代表了兩種框架,分別面向不同類型的基于Windows的開發(fā)。

    ?

    • MFC代表了創(chuàng)建獨立的Windows應(yīng)用的一種簡單、一致的方法;ATL提供了一種框架來實現(xiàn)創(chuàng)建COM客戶機和服務(wù)器所必須的樣板文件代碼。
    • ATL則不同于MFC,它完全面向COM組件,其技術(shù)路線也不同于MFCMFC使用的是C++中的繼承、封裝、嵌套等常規(guī)技術(shù),而ATL使用了C++中模板、多繼承等高級技術(shù),甚至還用到了STL。所以學(xué)習(xí)和使用ATL要求我們必須熟悉這些C++高級特性。

    ?

    另一方面,ATL結(jié)構(gòu)完全針對COM中的諸多規(guī)范,這就要求使用人員必須非常了解COM規(guī)范,才有可能真正把ATL用好。

    什么是ATL

    ATL(動態(tài)模板庫)ActiveX?Template?Library?的縮寫,它是一套C++模板庫。基本目標就是使COM應(yīng)用開發(fā)盡可能地自動化

    ATLActiveX?Template?Library?的縮寫,它是一套C++模板庫。使用ATL能夠快速地開發(fā)出高效、簡潔的代碼(Effective?and?Slim?code),同時對COM組件的開發(fā)提供最大限度的代碼自動生成以及可視化支持。為了方便使用,從Microsoft?Visual?C++?5.0版本開始,MicrosoftATL集成到Visual?C++開發(fā)環(huán)境中。19989月推出的Visual?Studio?6.0?集成了ATL?3.0版本。目前,ATL已經(jīng)成為Microsoft標準開發(fā)工具中的一個重要成員,日益受到C++開發(fā)人員的重視。?

    ?

  • ATL的基本目標就是使COM應(yīng)用開發(fā)盡可能地自動化,這個基本目標就決定了ATL只面向COM開發(fā)提供支持。目標的明確使ATLCOM技術(shù)的支持達到淋漓盡致的地步。對COM開發(fā)的任何一個環(huán)節(jié)和過程,ATL都提供支持,并將與COM開發(fā)相關(guān)的眾多工具集成到一個統(tǒng)一的編程環(huán)境中。對于COM/ActiveX的各種應(yīng)用,ATL也都提供了完善的Wizard支持。所有這些都極大地方便了開發(fā)者的使用,使開發(fā)者能夠把注意力集中在與應(yīng)用本身相關(guān)的邏輯上。
  • ATL因其采用了特定的基本實現(xiàn)技術(shù),擺脫了大量冗余代碼,使用ATL開發(fā)出來的COM應(yīng)用的代碼簡練高效,即所謂的“Slim?Code”ATL在實現(xiàn)上盡可能采用優(yōu)化技術(shù),甚至在其內(nèi)部提供了所有C/C++開發(fā)的程序所必須具有的C啟動代碼的替代部分。同時ATL產(chǎn)生的代碼在運行時不需要依賴于類似MFC程序所需要的龐大的代碼模塊,包含在最終模塊中的功能是用戶認為最基本和最必須的。這些措施使采用ATL開發(fā)的COM組件(包括ActiveX?Control)可以在網(wǎng)絡(luò)環(huán)境下實現(xiàn)應(yīng)用的分布式組件結(jié)構(gòu)。
  • ATL的各個版本對Microsoft的基于COM的各種新的組件技術(shù)如MTSASP等都有很好的支持,ATL對新技術(shù)的反應(yīng)速度大大快于MFCATL已經(jīng)成為Microsoft支持COM應(yīng)用開發(fā)的主要開發(fā)工具,因此COM技術(shù)方面的新進展在很短的時間內(nèi)都會在ATL中得到反映。這使開發(fā)者使用ATL進行COM編程可以得到直接使用COM?SDK編程同樣的靈活性和強大的功能。?
  • ?

    轉(zhuǎn)載于:https://www.cnblogs.com/jiangu66/p/3202825.html

    總結(jié)

    以上是生活随笔為你收集整理的[COM/ATL]组件、对象、MFC、ATL的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。