本页使用了标题或全文手工转换

活动模板库

维基百科,自由的百科全书
(重定向自Active Template Library
跳转至: 导航搜索

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

通过MFC可以提供互联网市场所需的控件,但是市场上还需要可以从网络上下载的轻量级控件。MFC程序通常较大而且需要支持DLL。 [3] ATL允许创建不需要支持DLL的更小的控件,所以ATL是一种在COM控件环境下MFC的轻量级替代物。

头文件[编辑]

  • afxwin.h
  • 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。

相關條目[编辑]

參考資料[编辑]

  1. ^ Grimes, Richard. ATL and COM. ATL COM 1st edition. Wrox Press. 1998: pg. 6. ISBN 1-86100-249-1. 
  2. ^ Grimes, Richard. Building and calling a COM object using ATL. Beginning ATL 3 COM Programming 1st edition. Wrox Press. 1999: pg. 63. ISBN 978-1-86100-120-7. 
  3. ^ Williams, Mickey. Active Documents. Visual C++ 6 Unleashed 1st edition. Sams. 2000: pg. 733. ISBN 978-0-672-31241-0.