[COM/ATL]組件、對象、MFC、ATL的區別

來源:互聯網
上載者:User
組件(Component)和對象(Object)之間的區別

先明確組件(Component)和對象(Object)之間的區別。組件是一個可重用的模組,它是由一 組處理過程、資料封裝和使用者介面組成的業務對象(Rules Object)。組件看起來像對象,但不符合對象的學術定義。它們的主要區別是: 

  1. 組件可以在另一個稱為容器(有時也稱為承載者或宿主)的應用程式中使用,也可以作為獨立過程使用; 
  2. 組件可以由一個類構成,也可以由多個類組成,或者是一個完整的應用程式; 
  3. 組件為模組重用,而對象為代碼重用。現在,比較流行的組件模型有COM(Component Objiect Module,對象組件模型)/DCOM( Distributed COM,分布式對象組件模型)和CORBA(Common Object Request Broker Architecture,公用對象請求代理體繫結構)。到這裡,已經出現了與本文相關的主題COM,而CORBA與本文無關,就不作介紹。 
MFC和ATL之間的不同

目前MFC和ATL代表了兩種架構,分別面向不同類型的基於Windows的開發。

  • MFC代表了建立獨立的Windows應用的一種簡單、一致的方法;ATL提供了一種架構來實現建立COM客戶機和伺服器所必須的樣板檔案代碼。
  • ATL則不同於MFC,它完全面向COM組件,其技術路線也不同於MFC,MFC使用的是C++中的繼承、封裝、嵌套等常規技術,而ATL使用了C++中模板、多繼承等進階技術,甚至還用到了STL。所以學習和使用ATL要求我們必須熟悉這些C++進階特性。

另一方面,ATL結構完全針對COM中的諸多規範,這就要求使用人員必須非常瞭解COM規範,才有可能真正把ATL用好。

什麼是ATL

ATL是(動態模板庫)ActiveX Template Library 的縮寫,它是一套C++模板庫。基本目標就是使COM應用開發儘可能地自動化。

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

  1. ATL的基本目標就是使COM應用開發儘可能地自動化,這個基本目標就決定了ATL只面向COM開發提供支援。目標的明確使ATL對COM技術的支援達到淋漓盡致的地步。對COM開發的任何一個環節和過程,ATL都提供支援,並將與COM開發相關的眾多工具整合到一個統一的編程環境中。對於COM/ActiveX的各種應用,ATL也都提供了完善的Wizard支援。所有這些都極大地方便了開發人員的使用,使開發人員能夠把注意力集中在與應用本身相關的邏輯上。
  2. ATL因其採用了特定的基本實現技術,擺脫了大量冗餘代碼,使用ATL開發出來的COM應用的代碼簡練高效,即所謂的“Slim Code”。ATL在實現上儘可能採用最佳化技術,甚至在其內部提供了所有C/C++開發的程式所必須具有的C啟動代碼的替代部分。同時ATL產生的代碼在運行時不需要依賴於類似MFC程式所需要的龐大的代碼模組,包含在最終模組中的功能是使用者認為最基本和最必須的。這些措施使採用ATL開發的COM組件(包括ActiveX Control)可以在網路環境下實現應用的分布式組件結構。
  3. ATL的各個版本對Microsoft的基於COM的各種新的組件技術如MTS、ASP等都有很好的支援,ATL對新技術的反應速度大大快於MFC。ATL已經成為Microsoft支援COM應用開發的主要開發工具,因此COM技術方面的新進展在很短的時間內都會在ATL中得到反映。這使開發人員使用ATL進行COM編程可以得到直接使用COM SDK編程同樣的靈活性和強大的功能。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.