Разработчик (и) | Microsoft |
---|---|
Написано на | C ++ |
Операционная система | Microsoft Windows |
Тип | Библиотека или framework |
Лицензия | Собственная |
Библиотека активных шаблонов (ATL) - это набор классов C ++ на основе шаблонов, разработанных Microsoft, предназначенный для упрощения программирования объектов модели компонентных объектов (COM). Поддержка COM в Microsoft Visual C ++ позволяет разработчикам создавать различные COM-объекты, серверы OLE Automation и элементы управления ActiveX. ATL включает в себя мастер объектов, который быстро устанавливает первичную структуру объектов с минимумом ручного кодирования. На стороне клиента COM ATL предоставляет интеллектуальные указатели, которые имеют дело с подсчетом ссылок COM. Библиотека интенсивно использует необычно повторяющийся шаблон шаблона.
COM-объекты также могут быть созданы с помощью Microsoft Foundation Classes (MFC), но это приводит к большим двоичным файлам, которые требуют поддержки DLL. ATL, с другой стороны, является более легкой альтернативой в ситуациях, когда части графического пользовательского интерфейса MFC не требуются.
В ATL версии 7 (Visual Studio 2003), которая непосредственно пришла на смену версии 3 (Visual Studio 6.0) ряд классов MFC, таких как CString, стал доступным в ATL или, точнее, перемещен на общий уровень ATLMFC, который используется обеими библиотеками. ATL версии 7 также представил атрибуты в C ++ в попытке предоставить что-то похожее на атрибуты CLI, однако они не принесли особого успеха и были недооценены в ATL версии 8 (Visual Studio 2005); различные мастера больше не генерируют их по умолчанию. Версия 7 также представила новые классы преобразования строк.
28 июля 2009 г. Microsoft выпустила патч для ATL, чтобы исправить ошибку, которая может сделать элементы управления ActiveX, созданные с использованием ATL, уязвимыми для уязвимости удаленного выполнения кода.
Начиная с Visual Studio 2013, код ATL в Visual C ++ 2013 является статическим, что исключает DLL.
ATL включает множество классов RAII для упрощения управления COM-типы. Наиболее часто используемые классы:
CComPtr
универсальный интеллектуальный указатель,CComBSTR
оболочка BSTR,оболочка CComVariant
VARIANT иCComSafeArray
Оболочка SAFEARRAY.Хотя формально не является частью ATL, Microsoft Visual C ++ также включает дополнительные классы C ++ RAII для упрощения управления типами COM. Эти классы поддержки COM компилятора могут использоваться в качестве замены или в сочетании с ATL и включают:
_com_ptr_t
интеллектуальный указатель, который украшает имя интерфейса COM суффиксом «Ptr»,_bstr_t
Оболочка BSTR, оболочка_variant_t
VARIANT и_com_error
оболочка HRESULT.Обратите внимание, что начиная с Visual Studio 2012 классы поддержки COM компилятора не включают оболочку SAFEARRAY.