活動模板庫

活動模板庫Active Template Library (ATL))是一個以C++模板技術的類的集合,是Microsoft為了簡化組件對象模型(COM)的程式設計而發布的。 COM旨在允許開發者利用Visual C++創造各種各樣的組件,包括OLE Automation伺服器,與ActiveX控制項。 Patterned after the Standard Template Library(STL), ATL 包含一個對象嚮導(object wizard),當設定好主要的對象結構後,能夠產生快速與較小的程式。

通過MFC可以提供網際網路市場所需的控制項,但是市場上還需要可以從網路上下載的輕量級控制項。MFC程式通常較大而且需要支持DLL。 [3] ATL允許創建不需要支持DLL的更小的控制項,所以ATL是一種在COM控制項環境下MFC的輕量級替代物。

基本介紹

  • 中文名:活動模板庫
  • 外文名:Active Template Library 
  • 性質:以C++模板技術的類的集合
  • 領域:計算機軟體
頭檔案,編譯選項,歷史版本,支持類,編譯器COM支持類,

頭檔案

afximpl.h 實現了一套模板庫,如CArray, CList, CMap等。因為在發布時STL尚未進入C++語言標準,因此ATL自行開發實現了一套。

編譯選項

ATL定義三個宏來來影響生成的COM伺服器的最佳化。
  • _ATL_MIN_CRT 伺服器不連結標準的C/C++運行庫,並且ATL提供了函式malloc、realloc、new和delete的一個實現。不能調用任何其他的C/C++運行庫的函式。_mainATL嚮導生成的ATL工程為所有的Release版本的定義了_ATL_MIN_CRT,但是沒有為Debug版本定義這個符號宏。
  • _ATL_DLL 伺服器動態連結工具函式館atl.dll
  • _ATL_STATIC_REGISTRY 伺服器靜態連結對組件註冊的支持
Debug配置沒有定義上述三個符號宏。Release MinSize配置定義了_ATL_MIN_CRT和_ATL_DLL。Release MinDependency配置定義了_ATL_MIN_CRT和_ATL_STATIC_REGISTRY。

歷史版本

  • ATL版本3.0 (Visual Studio 6.0)
  • ATL版本7.0 (Visual Studio 2003)
  • ATL版本8.0 (Visual Studio 2005)

支持類

ATL包含了許多RAII類以簡化對COM類型的管理。常用的有:
  • CComPtr<T>通用智慧型指針
  • CComBSTRBSTR包裝
  • CComVariantVARIANT包裝
  • CComSafeArray<T>SAFEARRAY包裝

編譯器COM支持類

雖然不是ATL的正式組成部分,Microsoft Visual C++包含額外的C++ RAII類以簡化對COM類型的管理,可替代或配合ATL中對應的部分:
  • _com_ptr_t裝飾COM接口的智慧型執政,前綴以"Ptr"。
  • _bstr_tBSTR包裝器
  • _variant_tVARIANT包裝器
  • _com_errorHRESULT包裝器
注意從Visual Studio 2012起,編譯器COM支持類不再包含SAFEARRAY包裝器。

相關詞條

熱門詞條

聯絡我們