4.4 ATL (ACTIVE TEMPLATE LIBRARY)
El Active Témplate Library (ATL) es un conjunto de
clases basadas en plantillas de C ++ clases
desarrolladas por Microsoft, destinado a simplificar la programación del Modelo
de objetos componentes (COM) de objetos.
Es un conjunto de
clases de C++ basadas en plantillas que permiten crear objetos pequeños,
rápidos (COM) del modelo de objetos componentes.
El apoyo COM en Microsoft Visual C ++ permite a los
desarrolladores crear una variedad de objetos COM, OLE Automation servidores y
ActiveX controles.
ATL incluye un
asistente de objeto que establece la estructura primaria de los objetos muy
rápidamente con un mínimo de codificación manual.
En el lado del cliente COM ATL proporciona punteros
inteligentes que tienen que ver con el recuento de referencias COM.
Historia
ATL versión7
introdujo atributos en C ++ en un intento de ofrecer algo similar a los
atributos de la CLI, no han tenido mucho éxito, y se han restado importancia en
la versión de ATL 8 (Visual Studio 2005). La versión7 introduce nuevas clases
de conversión de cadenas.
El 28 de julio de 2009, Microsoft lanzó un parche para
ATL para corregir un error que podría permitir ActiveX controles creados con
ATL a ser vulnerable a una falla de seguridad de ejecución remota de código.
Desde Visual Studio 2013, código de ATL en Visual C ++
2013 es estática, lo que elimina la DLL.
Clases de apoyo
ATL incluye muchas RAII clases para simplificar la
gestión de tipos COM.
Las clases más comúnmente utilizados son:
•CComPtr <T> de propósito general Smart-puntero,
•CComBSTR envoltorio BSTR,
•CComVariant envoltorio VARIANTE, y
•CComSafeArray <T> envoltorio SAFEARRAY.
Apoyo Compiler COM
Aunque no es formalmente parte de ATL, Microsoft Visual C
++ también incluye adicional de C ++ clases RAII para simplificar la gestión de
tipos COM.
Estos apoyo compilador COM clases pueden
ser utilizados como reemplazo para o en combinación con ATL, e incluye:
_com_ptr_t smart-puntero que decora el nombre de la
interfaz COM con un sufijo "PTR",
_bstr_t envoltorio BSTR,
_variant_t envoltorio VARIANTE, y
_com_error envoltorio HRESULT.