stringtranslate.com

Biblioteca de plantillas activa

La biblioteca de plantillas activas (ATL) es un conjunto de clases 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 archivos binarios más grandes que requieren soporte para archivos DLL . [3] ATL, por otro lado, es una alternativa más liviana en situaciones donde las partes de la interfaz gráfica de usuario de MFC no son necesarias. [4]

En la versión 7 de ATL (Visual Studio 2003), que sucedió directamente a la versión 3 (Visual Studio 6.0), varias clases MFC como CString estuvieron disponibles en ATL o, más precisamente, se trasladaron a una capa común ATLMFC que comparten ambas bibliotecas. ATL versión 7 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 ATL versión 8 (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 tipos COM. Las clases más utilizadas incluyen:

Compatibilidad con compilador COM

Aunque no forma parte formalmente de ATL, Microsoft Visual C++ también incluye clases RAII de C++ adicionales para simplificar la administración de tipos COM. Estas clases de soporte COM del compilador se pueden usar 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.

Ver también

Referencias

  1. ^ Grimes, Richard (1998). "ATL y COM". ATL COM (1ª ed.). Prensa Wrox. pag. 6.ISBN​ 1-86100-249-1.
  2. ^ Grimes, Richard (1999). "Construir y llamar a un objeto COM mediante ATL". Inicio de la programación COM ATL 3 (1ª ed.). Prensa Wrox. pag. 63.ISBN 978-1-86100-120-7.
  3. ^ Williams, Mickey (2000). "Documentos activos". Visual C++ 6 desatado (1ª ed.). Sam. pag. 733.ISBN 978-0-672-31241-0.
  4. ^ Microsoft MSDN: recomendaciones para elegir entre ATL y MFC
  5. ^ "Actualización de seguridad ATL". MSDN . Microsoft. 2009-07-28 . 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