stringtranslate.com

Biblioteca de plantillas activas

Active Template Library ( ATL) es un conjunto de clases de C++ basadas en plantillas desarrolladas por Microsoft , destinadas a simplificar la programación de objetos del Modelo de objetos componentes (COM). La compatibilidad con COM en Microsoft Visual C++ permite a los desarrolladores crear una variedad de objetos COM, servidores de automatización OLE y controles ActiveX . [1] [2] ATL incluye un asistente de objetos que configura la estructura primaria de los objetos rápidamente con un mínimo de codificación manual. En el lado del cliente COM, ATL proporciona punteros inteligentes que se ocupan del recuento de referencias COM. La biblioteca hace un uso intensivo del patrón de plantilla curiosamente recurrente .

Historia

Los objetos COM también se pueden crear con Microsoft Foundation Classes (MFC), pero esto genera binarios más grandes que requieren DLL de soporte . [3] ATL, por otro lado, es una alternativa más liviana en situaciones donde no se requieren las partes de interfaz gráfica de usuario de MFC. [4]

En la versión 7 de ATL (Visual Studio 2003), que sucedió directamente a la versión 3 (Visual Studio 6.0), se pusieron a disposición en ATL varias clases MFC como CString o, más precisamente, se trasladaron a una capa común ATLMFC que comparten ambas bibliotecas. La versión 7 de ATL también introdujo atributos en C++ en un intento de proporcionar algo similar a los atributos CLI , sin embargo, estos no han tenido mucho éxito y se les ha restado importancia en la versión 8 de ATL (Visual Studio 2005); los distintos asistentes ya no los generan de forma predeterminada. La versión 7 también introdujo 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 que los controles ActiveX creados con ATL fueran vulnerables a una falla de seguridad de ejecución remota de código. [5]

Desde Visual Studio 2013, el código ATL en Visual C++ 2013 es estático, lo que elimina la DLL. [6]

Clases de apoyo

ATL incluye muchas clases RAII para simplificar la gestión de los tipos COM. Las clases más utilizadas son:

Compatibilidad con compiladores COM

Aunque no forma parte formalmente de ATL, Microsoft Visual C++ también incluye clases RAII de C++ adicionales para simplificar la gestión de tipos COM. Estas clases de compatibilidad con COM del compilador se pueden utilizar como reemplazo o en combinación con ATL, e incluyen:

Tenga en cuenta que a partir de Visual Studio 2012, las clases de soporte COM del compilador no incluyen un contenedor SAFEARRAY.

Véase también

Referencias

  1. ^ Grimes, Richard (1998). "ATL y COM". ATL COM (1.ª ed.). Wrox Press. pág. 6. ISBN 1-86100-249-1.
  2. ^ Grimes, Richard (1999). "Construcción y llamada de un objeto COM mediante ATL". Beginning ATL 3 COM Programming (1.ª ed.). Wrox Press. pág. 63. ISBN 978-1-86100-120-7.
  3. ^ Williams, Mickey (2000). "Documentos activos". Visual C++ 6 Unleashed (1.ª ed.). Sams. pág. 733. ISBN 978-0-672-31241-0.
  4. ^ Microsoft MSDN: Recomendaciones para elegir entre ATL y MFC
  5. ^ "Actualización de seguridad de ATL". MSDN . Microsoft. 28 de julio de 2009. Consultado el 19 de septiembre de 2011 .
  6. ^ Cambios y correcciones de ATL y MFC en 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: Clase CComPtr
  8. ^ Microsoft MSDN: Clase CComBSTR
  9. ^ Microsoft MSDN: Clase CComVariant
  10. ^ Microsoft MSDN: Clase CComSafeArray
  11. ^ Microsoft MSDN: Clase _com_ptr_t
  12. ^ Microsoft MSDN: Clase _bstr_t
  13. ^ Microsoft MSDN: Clase _variant_t
  14. ^ Microsoft MSDN: Clase _com_error

Enlaces externos