활성 템플릿 라이브러리

Active Template Library
활성 템플릿 라이브러리
개발자마이크로소프트
기입처C++
운영 체제Microsoft Windows
유형라이브러리 또는 프레임워크
면허증.독자 사양

Active Template Library(ATL; 액티브템플릿 라이브러리)는 Microsoft가 개발한 템플릿 기반의 C++ 클래스 세트로 Component Object Model(COM; 컴포넌트 객체 모델) 객체의 프로그래밍을 단순화하는 것을 목적으로 합니다.개발자는 마이크로소프트 Visual C++COM 지원을 통해 다양한 COM 개체, OLE Automation 서버 및 ActiveX [1][2]컨트롤을 생성할 수 있습니다.ATL에는 최소한의 수동 코딩으로 빠르게 개체의 기본 구조를 설정하는 개체 마법사가 포함되어 있습니다.COM 클라이언트 측에서는 ATL은 COM 참조 카운트를 처리하는 스마트포인터를 제공합니다라이브러리는 이상하게 반복되는 템플릿 패턴을 많이 사용합니다.

역사

COM 오브젝트는 Microsoft Foundation Class(MFC; Microsoft Foundation Class)를 사용하여 작성할 수도 있지만 이를 통해 지원 DLL[3]필요한 바이너리가 커집니다.한편, ATL은 MFC의 그래피컬 사용자 인터페이스 [4]부품이 필요하지 않은 상황에서는 보다 가벼운 대체 수단입니다.

버전 3(Visual Studio 6.0)을 직접 계승한 ATL 버전 7(Visual Studio 2003)에서는 CString과 같은 MFC 클래스가 ATL에서 사용 가능하게 되었습니다.또는 보다 정확하게는 양쪽 라이브러리가 공유하는 ATLMFC 공통 레이어로 이동되었습니다.또한 ATL 버전7은 CLI 속성과 유사한 것을 제공하기 위해 C++로 Atribute를 도입했습니다만, 이러한 Atribute는 특별히 성공적이지 않고 ATL 버전8(Visual Studio 2005)에서는 강조되고 있습니다.다양한 마법사는 디폴트로 이러한 Atribute를 생성하지 않습니다.버전 7에서는 새로운 문자열 변환 클래스도 도입되었습니다.

2009년 7월 28일 Microsoft는 ATL을 사용하여 작성된 ActiveX 컨트롤이 원격 코드 실행 보안 [5]결함에 취약할 수 있는 오류를 수정하는 패치를 ATL에 릴리스했습니다.

Visual Studio 2013 이후 Visual C++ 2013의 ATL 코드는 정적이므로 [6]DLL이 제거됩니다.

서포트 클래스

ATL에는 많은 RAII 클래스가 포함되어 있어 COM 타입의 관리를 단순화합니다.가장 일반적으로 사용되는 클래스는 다음과 같습니다.

  • CComPtr<T>[7] 범용 스마트 드라이브,
  • CComBSTR[8] BSTR 래퍼,
  • CComVariant[9] 바리안트 래퍼 및
  • CComSafeArray<T>[10] SAFEARRAY 포장지

컴파일러 COM 지원

Microsoft Visual C++ 에는, 정식 ATL 의 일부는 아니지만, COM 타입의 관리를 용이하게 하기 위해서, 추가의 C++RAII 클래스도 포함되어 있습니다.이러한 컴파일러 COM 지원 클래스는 ATL을 대체하거나 ATL과 조합하여 사용할 수 있습니다.이 클래스는 다음과 같습니다.

  • _com_ptr_t[11] smart-pointer는 COM 인터페이스 이름을 "Ptr" 서픽스로 장식합니다.
  • _bstr_t[12] BSTR 래퍼,
  • _variant_t[13] 바리안트 래퍼 및
  • _com_error[14] HRESULT 래퍼

Visual Studio 2012 현재 컴파일러 COM 지원 클래스에는 SAFEARRAY 래퍼가 포함되어 있지 않습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Grimes, Richard (1998). "ATL and COM". ATL COM (1st ed.). Wrox Press. p. 6. ISBN 1-86100-249-1.
  2. ^ Grimes, Richard (1999). "Building and calling a COM object using ATL". Beginning ATL 3 COM Programming (1st ed.). Wrox Press. p. 63. ISBN 978-1-86100-120-7.
  3. ^ Williams, Mickey (2000). "Active Documents". Visual C++ 6 Unleashed (1st ed.). Sams. p. 733. ISBN 978-0-672-31241-0.
  4. ^ Microsoft MSDN: ATL과 MFC하나를 선택하기 위한 권장 사항
  5. ^ "ATL Security Update". MSDN. Microsoft. 2009-07-28. Retrieved 2011-09-19.
  6. ^ ATL 및 MFC의 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 클래스
  8. ^ Microsoft MSDN: CComBSTR 클래스
  9. ^ Microsoft MSDN: CComVariant 클래스
  10. ^ Microsoft MSDN: CCom Safe Array 클래스
  11. ^ Microsoft MSDN: _com_ptr_t 클래스
  12. ^ Microsoft MSDN: _bstr_t 클래스
  13. ^ Microsoft MSDN: _variant_t 클래스
  14. ^ Microsoft MSDN: _com_error 클래스

외부 링크