活动模板库
(重定向自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。
相關條目编辑
- ATL Server
- Component Object Model (COM)
- Microsoft Foundation Classes (MFC)
- OLE Automation
- Standard Template Library (STL)
- Windows Template Library (WTL)
- Microsoft Platform SDK
历史编辑
- ATL版本3.0 (Visual Studio 6.0)
- ATL版本7.0 (Visual Studio 2003)
- ATL版本8.0 (Visual Studio 2005)
支持类编辑
ATL包含了许多RAII类以简化对COM类型的管理。常用的有:
编译器COM支持类编辑
虽然不是ATL的正式组成部分,Microsoft Visual C++包含额外的C++ RAII类以简化对COM类型的管理,可替代或配合ATL中对应的部分:
_com_ptr_t
[8]装饰COM接口的智能执政,前缀以"Ptr"。_bstr_t
[9] BSTR包装器_variant_t
[10] VARIANT包装器_com_error
[11] HRESULT包装器
注意从Visual Studio 2012起,编译器COM支持类不再包含SAFEARRAY包装器。
參考資料编辑
- ^ Grimes, Richard. ATL and COM. ATL COM 1st edition. Wrox Press. 1998: pg. 6. ISBN 1-86100-249-1.
- ^ 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.
- ^ Williams, Mickey. Active Documents. Visual C++ 6 Unleashed 1st edition. Sams. 2000: pg. 733. ISBN 978-0-672-31241-0.
- ^ Microsoft MSDN: CComPtr Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: CComBSTR Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: CComVariant Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: CComSafeArray Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: _com_ptr_t Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: _bstr_t Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: _variant_t Class (页面存档备份,存于互联网档案馆)
- ^ Microsoft MSDN: _com_error Class (页面存档备份,存于互联网档案馆)
🔥 Top keywords: Baike: 首页Special:搜索胖猫跳江事件背着善宰跑九龍城寨之圍城逆天奇案2璩静淚之女王歌手2024Energy (組合)新生 (网络剧)习近平匈牙利邊佑錫劉俊謙 (香港)金智媛神耆小子塞尔维亚金秀賢 (男演員)母亲节猩球崛起:王國誕生九龍寨城馴鹿寶貝家族榮耀之繼承者Seventeen (組合)六四事件不夠善良的我們张维为楊佩潔TripleS支配物种庆余年郭葦昀洪若潭命案金惠奫2024年英雄联盟季中邀请赛春色寄情人BABYMONSTER笑看風雲乘風2024排球少年!!角色列表破墓徐巧芯中华人民共和国中華民國打天下2WIND BREAKER—防風少年—习明泽排球少年!!彭丽媛磁暴ILLIT贾斯汀·比伯逆天奇案BOYNEXTDOOR猿人爭霸戰:猩凶革命張書偉我的婆婆怎麼那麼可愛我獨自升級怪獸8號謝坤達IVE (組合)與鳳行關於我轉生變成史萊姆這檔事角色列表黃道十二宮福建號航空母艦虽然不是英雄葉乃文五月天張員瑛草榴社区張文傑2024年花蓮地震极光香緹·摩爾迷宮飯呂家愷搜查班長1958日本劉德華海莉·鮑德溫蕭景鴻越位 (足球)葬送的芙莉蓮周處除三害 (電影)毛泽东願榮光歸香港林峯周雨彤伍允龍羅毓儀香港Baike: 分類索引沒有秘密猩球崛起:終極決戰角質層唐振剛柯佳嬿文化大革命