한국   대만   중국   일본 
액티브 템플릿 라이브러리 - 위키百科, 우리 모두의 百科事典 本文으로 移動

액티브 템플릿 라이브러리

위키百科, 우리 모두의 百科事典.

액티브 템플릿 라이브러리
開發者 마이크로소프트
프로그래밍 言語 C++
運營 體制 마이크로소프트 윈도우
種類 라이브러리 or 프레임워크
라이선스 事由
狀態 開發 中

액티브 템플릿 라이브러리 ( Active Template Library , ATL)는 마이크로소프트 가 開發한 템플릿 基盤 C++ 클래스들의 集合으로, 컴포넌트 오브젝트 모델 (COM) 오브젝트의 프로그래밍을 單純化할 目的으로 만들어졌다. 비주얼 C++ 의 COM 支援을 통해 開發者들은 다양한 COM 오브젝트, OLE 自動化 서버, 액티브X 컨트롤러를 開發할 수 있다. [1] [2] ATL은 오브젝트 魔法師가 包含되어 있어서 最小限의 손 코딩으로 빠르게 오브젝트의 主要 構造를 構成할 수 있다. COM 클라이언트 側에서 ATL은 COM 參照 카運팅을 다루는 스마트 포인터 를 提供한다. 라이브러리는 큐리어슬리 리커링 템플릿 패턴 (curiously recurring template pattern, CRTP)을 相當하게 使用한다.

歷史 [ 編輯 ]

COM 오브젝트들은 마이크로소프트 파운데이션 클래스 라이브러리 (MFC)를 使用하여 만들 수도 있지만 DLL 支援이 必要한 더 큰 바이너里를 만들어낸다. [3] 한便 ATL은 MFC의 그래픽 使用者 인터페이스 部分이 必要하지 않은 狀況에서 더 가벼운 對案이 될 수 있다. [4]

버전 3(비주얼 스튜디오 6.0)의 뒤를 直接 잇는 ATL 버전 7(비주얼 스튜디오 2003)에서 CString과 같은 수많은 MFC 클래스들은 ATL에서 利用이 可能하게 되었는데, 두 라이브러리에 依해 共有되는 ATLMFC 共通 레이어로 移動되었다는 表現이 더 正確하다. ATL 버전 7은 또한 CLI 屬性 과 類似한 것을 提供하기 爲해 C++의 屬性들을 導入하였으나 이것들은 特히 成功的이지 못했고 ATL 버전 8(비주얼 스튜디오 2005)에서 輕視되었다. 多樣한 魔法師들은 더 以上 基本的으로 이들을 生成하지 않는다. 버전 7은 또한 새로운 文字列 變換 클래스들을 導入하였다.

2009年 7月 28日, 마이크로소프트는 ATL을 使用하여 만든 액티브X 컨트롤이 遠隔 코드 實行 保安 脆弱點에 脆弱해질 수 있는 버그를 修正하기 위한 패치를 公開하였다. [5]

비주얼 스튜디오 2013 以後로, 비주얼 C++ 2013의 ATL 코드는 靜的이며, DLL을 除去한다. [6]

支援 클래스 [ 編輯 ]

ATL은 수많은 RAI(Resource Acquisition Is Initialization) 클래스들을 包含하고 있어서 COM 타입의 管理를 單純化시킨다. 가장 一般的으로 쓰이는 클래스는 다음과 같다:

  • CComPtr<T> [7] 汎用 스마트 포인터,
  • CComBSTR [8] BSTR 래퍼(wrapper),
  • CComVariant [9] VARIANT 래퍼,
  • CComSafeArray<T> [10] SAFEARRAY 래퍼.

컴파일러 COM 支援 [ 編輯 ]

公式的으로 ATL의 一部는 아니지만, 마이크로소프트 비주얼 C++은 또한 COM 타입 管理의 單純化를 위해 追加的인 C++ RAII 클래스들은 包含하고 있다. 이 컴파일러 COM 支援 클래스들은 ATL과 함께, 또는 ATL을 代身하여 使用할 수 있으며 다음을 包含한다:

  • _com_ptr_t [11] COM 인터페이스 이름을 "Ptr" 接尾辭로 表現하는 스마트 포인터,
  • _bstr_t [12] BSTR 래퍼,
  • _variant_t [13] VARIANT 래퍼,
  • _com_error [14] HRESULT 래퍼.

비주얼 스튜디오 2012를 基準으로, 컴파일러 COM 支援 클래스들은 SAFEARRAY 래퍼를 包含하지 않고 있다.

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. Grimes, Richard (1998). 〈ATL and COM〉. 《ATL COM》 1板. Wrox Press. 6쪽. ISBN   1-86100-249-1 .  
  2. Grimes, Richard (1999). 〈Building and calling a COM object using ATL〉. 《Beginning ATL 3 COM Programming》 1板. Wrox Press. 63쪽. ISBN   978-1-86100-120-7 .  
  3. Williams, Mickey (2000). 〈Active Documents〉. 《Visual C++ 6 Unleashed》 1板. Sams. 733쪽. ISBN   978-0-672-31241-0 .  
  4. Microsoft MSDN: Recommendations for Choosing Between ATL and MFC
  5. “ATL Security Update” . 《MSDN》. Microsoft. 2009年 7月 28日 . 2011年 9月 19日에 確認함 .  
  6. ATL and MFC changes and fixes in Visual Studio 2013 http://blogs.msdn.com/b/vcblog/archive/2013/08/20/atl-and-mfc-changes-and-fixes-in-visual-studio-2013.aspx
  7. Microsoft MSDN: CComPtr Class
  8. Microsoft MSDN: CComBSTR Class
  9. Microsoft MSDN: CComVariant Class
  10. Microsoft MSDN: CComSafeArray Class
  11. Microsoft MSDN: _com_ptr_t Class
  12. Microsoft MSDN: _bstr_t Class
  13. Microsoft MSDN: _variant_t Class
  14. Microsoft MSDN: _com_error Class

外部 링크 [ 編輯 ]