¿Qué significa com?
Com también es un nombre de dominio internacional de nivel superior. Com, la abreviatura de empresa, es el nombre de dominio de nivel superior más utilizado, que significa sitio web comercial.
[Editar este párrafo] Componente COM
Qué es un componente COM
COM es la abreviatura de Component Object Model.
¿Qué tipo de productos de software necesitan los usuarios? Esta es una pregunta de opción múltiple, pero definitivamente se elegirá eficiente y sólida. ¿Qué puede hacer un desarrollador de software para satisfacer las necesidades de los usuarios? Debe asegurarse de que al actualizar su aplicación no rompa la compatibilidad con versiones anteriores. Es necesario ampliar los servicios del sistema independientemente del sistema operativo específico. La programación orientada a objetos es obviamente un cambio revolucionario. Utilizando métodos de diseño orientado a objetos, podemos abstraer fácilmente los problemas a resolver en varias clases, ocultar las acciones internas y proporcionar solo algunas interfaces. Pero esto no resuelve completamente nuestro problema. Ayer vi en la revista "Programmer" que ahora es la era post-OO, entonces, ¿qué será después de OO? Debe estar orientado a componentes.
Thor acaba de terminar de leer el libro "Insider on COM Technology" y compiló una sección de preguntas frecuentes para su referencia cuando estudie este libro.
Esta es la primera parte, que incluye los tres primeros capítulos.
Pregunta frecuente 1: ¿Qué es un componente COM? [Capítulo 1]
Pregunta frecuente 2: ¿El componente no es...? [Capítulo 1]
Preguntas frecuentes 3: ¿Qué es una interfaz? [Capítulo 2]
Pregunta frecuente 4: ¿Cuál es la función de la interfaz? [Capítulo 2]
Pregunta frecuente 5: ¿Qué no sé? [Capítulo 3]
Pregunta frecuente 6: ¿Cuál es la función de QueryInterface? [Capítulo 3]
Pregunta frecuente 7: ¿Cuáles son las reglas de implementación de la función QueryInterface? [Capítulo 3]
Preguntas frecuentes 8: ¿Cómo se ve la interfaz de consulta? [Capítulo 3]
Pregunta frecuente 9: ¿Cuál es el parámetro IID de la función QueryInterface? [Capítulo 3]
Pregunta frecuente 10: ¿Cuándo necesito crear una nueva versión del componente COM? [Capítulo 3]
Pregunta:
¿Qué es un componente COM?
Respuesta:
Los componentes COM constan de código ejecutable publicado en forma de biblioteca de vínculos dinámicos (DLL) WIN32 o archivo ejecutable (EXE).
Los componentes COM están escritos de acuerdo con las especificaciones COM.
Los componentes COM son pequeños archivos binarios ejecutables.
Los componentes COM pueden proporcionar servicios para aplicaciones, sistemas operativos y otros componentes.
Los componentes COM personalizados se pueden conectar con otros componentes en tiempo de ejecución para formar una aplicación.
Los componentes COM pueden insertar o desinstalar aplicaciones dinámicamente.
Los componentes COM deben estar vinculados dinámicamente.
Los componentes COM deben ocultar (encapsular) sus detalles de implementación interna.
Los componentes COM deben ocultar el lenguaje que implementan.
Los componentes COM deben distribuirse en formato binario.
Los componentes COM deben poder actualizarse sin interrumpir a los usuarios existentes.
Los componentes COM se pueden reubicar de forma transparente a través de la red.
Los componentes COM anuncian su existencia de forma estándar.
Pregunta:
¿Este componente no es...?
Respuesta:
El componente COM no es un lenguaje informático.
Los componentes COM no son archivos DLL, simplemente los usan para proporcionar capacidades de enlace dinámico para los componentes.
Los componentes COM no son conjuntos de funciones API.
El componente COM no es una clase.
Pregunta:
¿Qué es una interfaz?
Respuesta:
Una interfaz proporciona una conexión entre dos objetos diferentes.
Los programas informáticos están conectados mediante un conjunto de funciones que definen las interfaces con diferentes partes del programa.
La interfaz de una DLL es la función que genera.
La interfaz de una clase C es el conjunto de funciones miembro de esta clase.
La interfaz en COM es un conjunto de funciones implementadas por componentes y proporcionadas a los clientes.
En COM, una interfaz es una estructura de memoria que contiene una matriz de punteros de función, y los elementos de la matriz son las direcciones de función implementadas por el componente.
Pregunta:
¿Cuál es la función de la interfaz?
Respuesta:
Para los componentes, la forma de conectarlos para formar una aplicación requiere una interfaz.
En COM, la interfaz lo es todo. Para los clientes, un componente es un conjunto de interfaces y los clientes solo pueden tratar con componentes a través de interfaces.
Esto indica que la interfaz puede proteger el sistema de cambios externos. Esta es la encarnación del embalaje.
La implementación de la interfaz permite a los usuarios manejar diferentes componentes de la misma manera. Esta es la encarnación del polimorfismo.
Pregunta:
¿Cómo implementar la interfaz?
Respuesta:
La interfaz COM se implementa en C utilizando una clase base puramente abstracta.
Un componente COM puede admitir múltiples interfaces.
Una clase C puede utilizar herencia múltiple para implementar un componente que admita múltiples interfaces.
Un componente puede admitir cualquier número de interfaces.
Las interfaces deben ser inmutables. Al actualizar componentes, no se deben modificar las interfaces originales, pero se deben agregar nuevas interfaces.
La interfaz de implementación debe diseñarse cuidadosamente para que pueda admitir una variedad de implementaciones.
Pregunta:
¿Qué sé yo?
Respuesta:
IUnKnown es una interfaz.
Todas las interfaces COM heredan IUnKnown.
IUnKnown se define en el archivo de encabezado UNKNWN del SDK de WIN32.
///Definición de I desconocido
Interfaz desconocida
{
Virtual HRESULT __stdcall QueryInterface(constant IID amp; iid, void * * PPV) = 0;
ULONG virtual _ _ stdcall AddRef() = 0;
ULONG virtual _ _ stdcall Release() = 0; }
Pregunta:
¿Cuál es la función de QueryInterface?
Respuesta:
QueryInterface es una función miembro de IUnKnown, a través de la cual los clientes pueden consultar si un componente admite una interfaz específica.
La función QueryInterface devuelve un puntero a la interfaz soportada por el componente.
Si la función QueryInterface no encuentra una interfaz compatible con el componente, el puntero de retorno es nulo.
La función QueryInterface se puede implementar usando declaraciones if...then...else, matrices, tablas hash y árboles.
La función QueryInterface no puede utilizar declaraciones de caso porque devuelve una estructura HRESULT en lugar de un número.
QueryInterface también es un mecanismo para desbloquear versiones de componentes. Este mecanismo permite que las versiones antiguas y nuevas de los componentes interoperen.
Pregunta:
¿Cuáles son las reglas de implementación de la función QueryInterface?
Respuesta:
El puntero IUnKnown devuelto por QueryInterface es siempre el mismo.
Si un cliente obtiene una interfaz, siempre está disponible.
Los clientes pueden volver a obtener la interfaz que ya tienen.
Los clientes pueden volver a la pantalla de inicio.
Si una interfaz específica está disponible en una interfaz, entonces esa interfaz está disponible en cualquier interfaz.
Pregunta:
¿Cuál es el parámetro IID de la función QueryInterface?
Respuesta:
Es una estructura, una estructura de identificador de interfaz.
IID determina la interfaz requerida por el cliente.
Cada interfaz tiene un identificador de interfaz único. Por tanto, la interfaz correspondiente al IID nunca cambia.
El IID de la interfaz determina la versión del componente COM.
Diferentes interfaces tienen diferentes ID, incluidas interfaces de diferentes versiones.
Pregunta:
¿Cuándo necesito crear una nueva versión de un componente COM?
Respuesta:
Al asignar una nueva ID a una interfaz existente, se debe cumplir al menos una de las siguientes condiciones.
Cuando cambia el número de funciones en la interfaz.
Se ha cambiado el orden de las funciones en la interfaz.
Los parámetros de la función en la interfaz han cambiado.
Se ha cambiado el orden de los parámetros de función en la interfaz.
Se ha cambiado el tipo de parámetro de la función en la interfaz.
El valor de retorno de la función en la interfaz cambia.
El tipo de valor de retorno de la función en la interfaz ha cambiado.
El significado de los parámetros de función en la interfaz ha cambiado.
El significado de las funciones en la interfaz ha cambiado.
En pocas palabras, COM es una forma de disfrutar del código binario en aplicaciones e idiomas. A diferencia de C, promueve la reutilización del código fuente. ATL es un buen ejemplo. Aunque la reutilización a nivel de código fuente es buena, sólo se puede utilizar en C. También conlleva la posibilidad de que se produzcan conflictos de nombres, sin mencionar la constante copia y reutilización de código, lo que lleva a la expansión y el exceso de peso del proyecto.
Windows usa dll para disfrutar del código a nivel binario. Esto también es clave para ejecutar programas de Windows: reutilizar kernel32.dll, user32.dll, etc. Pero el dll está escrito para la interfaz C y solo puede ser utilizado 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, no el dll en sí. En este caso, el uso de la dll está restringido.
MFC presenta otro mecanismo de intercambio binario * * * de extensión dll de 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. El estándar también especifica claramente 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. El compilador es responsable de la compatibilidad del código binario generado con los estándares. Esto facilita que las generaciones posteriores utilicen estos binarios.
En la memoria, esta forma estándar de objeto COM se usa ocasionalmente en funciones virtuales de C, por eso una gran cantidad de código COM usa C. Pero ten en cuenta que el idioma en el que esté escrito el módulo es irrelevante, ya que el código binario generado está disponible en todos los idiomas.
Además, COM no es exclusivo de Win32. En teoría, se puede migrar a Unix u otros sistemas operativos. Pero parece que no he oído hablar de COM fuera de Windows.
[Editar este párrafo] com versión en inglés
1 significa * * * igual o igual, que significa "* * * iguales, mutuos, juntos";
Además, hay otra super tabla de col, cor, co, syn, sym, syl, syr * * * con el otro lado de la tabla Homo, igual porque las tablas son iguales y similares, etc. .
2. Significa fortalecer o ampliar el significado;
Prefijos similares son: be, a, ac, af, en, em, col, cor.
Los prefijos com- y con- significan "* * *juntos". Como conectarse, fusionarse, luchar, etc.
Según buscar el significado de com en el diccionario inglés-inglés, la explicación que da es que cuando empieza con. com significa relacionado con el negocio.
Según la explicación etimológica que encontré más tarde en Internet, com significa * * * y es sinónimo de co y con.
[Editar este párrafo] Abreviatura de computadora
Suele usarse para representar a los jugadores de la computadora en los juegos.
Materiales de referencia:
/view/25941.html? tp=0_11