Jump to content

Библиотека активных шаблонов

Библиотека активных шаблонов
Разработчик(и) Майкрософт
Написано в С++
Операционная система Microsoft Windows
Тип Библиотека или фреймворк
Лицензия Собственный

Библиотека активных шаблонов (ATL) — это набор классов C++ на основе шаблонов, разработанных Microsoft и предназначенных для упрощения программирования объектов модели компонентных объектов (COM). Поддержка COM в Microsoft Visual C++ позволяет разработчикам создавать различные объекты COM, серверы автоматизации OLE и элементы управления ActiveX . [1] [2] ATL включает в себя мастер объектов, который быстро устанавливает первичную структуру объектов с минимальным написанием ручного кода. На стороне COM-клиента ATL предоставляет интеллектуальные указатели , которые занимаются подсчетом ссылок COM. Библиотека активно использует любопытный повторяющийся шаблон шаблона .

COM-объекты также можно создавать с помощью Microsoft Foundation Classes (MFC), но это приводит к созданию более крупных двоичных файлов, требующих поддержки DLL . [3] ATL, с другой стороны, является более легкой альтернативой в ситуациях, когда части графического пользовательского интерфейса MFC не требуются. [4]

В версии 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, уязвимыми для уязвимости безопасности удаленного выполнения кода. [5]

Начиная с Visual Studio 2013, код ATL в Visual C++ 2013 является статическим, что исключает использование DLL. [6]

Классы поддержки

[ редактировать ]

ATL включает множество классов RAII для упрощения управления типами COM. Наиболее часто используемые классы включают в себя:

  • CComPtr<T>[7] универсальный смарт-указатель,
  • CComBSTR[8] обертка БСТР,
  • CComVariant[9] ВАРИАНТ-обертка и
  • CComSafeArray<T>[10] Обертка SAFEARRAY.

Поддержка COM компилятора

[ редактировать ]

Хотя формально Microsoft Visual C++ не является частью ATL, он также включает дополнительные классы C++ RAII для упрощения управления типами COM. Эти классы поддержки COM компилятора могут использоваться в качестве замены или в сочетании с ATL и включают в себя:

  • _com_ptr_t[11] смарт-указатель, который украшает имя COM-интерфейса суффиксом «Ptr»,
  • _bstr_t[12] обертка БСТР,
  • _variant_t[13] ВАРИАНТ-обертка и
  • _com_error[14] Обертка HRESULT.

Обратите внимание, что начиная с Visual Studio 2012 классы поддержки COM компилятора не включают оболочку SAFEARRAY.

См. также

[ редактировать ]
  1. ^ Граймс, Ричард (1998). «АТЛ и КОМ». ATL COM (1-е изд.). Врокс Пресс. п. 6 . ISBN  1-86100-249-1 .
  2. ^ Граймс, Ричард (1999). «Создание и вызов COM-объекта с использованием ATL». Начало программирования ATL 3 COM (1-е изд.). Врокс Пресс. п. 63 . ISBN  978-1-86100-120-7 .
  3. ^ Уильямс, Микки (2000). «Активные документы». Visual C++ 6 Unleashed (1-е изд.). Сэмс. п. 733. ИСБН  978-0-672-31241-0 .
  4. ^ Microsoft MSDN: Рекомендации по выбору между ATL и MFC
  5. ^ «Обновление безопасности ATL» . MSDN . Майкрософт. 28 июля 2009 г. Проверено 19 сентября 2011 г.
  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: Класс CComSafeArray
  11. ^ Microsoft MSDN: класс _com_ptr_t
  12. ^ Microsoft MSDN: класс _bstr_t
  13. ^ Microsoft MSDN: Класс _variant_t
  14. ^ Microsoft MSDN: класс _com_error
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 417f47cbbcacc9959de5775ed4f3e6f5__1704019800
URL1:https://arc.ask3.ru/arc/aa/41/f5/417f47cbbcacc9959de5775ed4f3e6f5.html
Заголовок, (Title) документа по адресу, URL1:
Active Template Library - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)