¿Qué es la programación COM?
COM es el Modelo de objetos componentes, que es la abreviatura de las tres primeras letras del Modelo de objetos componentes. Estas tres letras se pueden ver en todas partes en el mundo Windows actual. Una gran cantidad de nuevas tecnologías que surgen en cada momento se basan en COM. Varios documentos también están llenos de términos como objetos COM, interfaces y servidores. Por lo tanto, un programador no solo debe dominar el método de uso de COM, sino que también debe estar completamente familiarizado con todo lo relacionado con COM.
En pocas palabras, COM es una forma de compartir código binario entre aplicaciones e idiomas. A diferencia de C, promueve la reutilización del código fuente. ATL es un buen ejemplo. La reutilización a nivel de fuente es excelente, pero solo funciona en C. También trae la posibilidad de conflictos de nombres, sin mencionar la hinchazón y la hinchazón del proyecto causada por la copia y reutilización constante de código.
Windows utiliza DLL para compartir código a nivel binario. Esta es también la clave para ejecutar programas de Windows: reutilizar kernel32.dll, user32.dll, etc. Pero las DLL están escritas para la interfaz C y solo pueden ser utilizadas por C o un lenguaje que comprenda la convención de llamadas de C. El lenguaje de programación es responsable de implementar el código compartido, no las DLL en sí. En este caso, el uso de DLL está restringido.
MFC presenta otro mecanismo para compartir archivos binarios * de DLL de extensión MFC. Pero su uso aún es limitado: sólo se puede utilizar en programas MFC.
COM resuelve estos problemas definiendo estándares binarios, es decir, COM establece explícitamente que los módulos binarios (DLL y EXE) deben compilarse para que coincidan con la estructura especificada. Este estándar también especifica exactamente cómo se organizan los objetos COM en la memoria. El estándar binario definido por COM también debe ser independiente de cualquier lenguaje de programación (como las modificaciones de nombres en C). Una vez que se cumplen estas condiciones, se puede acceder fácilmente a estos módulos desde cualquier lenguaje de programación. Es responsabilidad del compilador producir código binario que cumpla con los estándares. Esto facilita que las generaciones futuras utilicen estos binarios.
Esta forma estándar de objetos COM en la memoria se usa ocasionalmente en funciones virtuales de C, por eso una gran cantidad de código COM usa C. Pero recuerda, el idioma en el que esté escrito el módulo es irrelevante, ya que el código binario resultante está disponible para todos los idiomas.
Además, COM no es específico de Win32. En teoría, podría trasladarse a Unix u otros sistemas operativos.