2010-05-10 11 views

Respuesta

14

AFAIK Los complementos de Qt se implementan como bibliotecas compartidas (.so en Unix/Linux y DLL en Windows). Las diferencias entre ellos son las mismas que con complementos y bibliotecas en general.

Lo que esto significa es que, una arquitectura plug-in es independiente del método de vinculación. Tienden a considerarse como enlaces de conexión/dinámica y enlaces no conectables/estáticos.

Una aplicación principal especifica una interfaz y un contrato de intercambio de datos (es decir, una API) a través del cual módulos separados pueden interactuar con la aplicación y exponer la funcionalidad a través de la aplicación. El solo envío de nuevos módulos en las DLL no soluciona la necesidad de que la aplicación descubra estos archivos DLL y sepa cómo ejecutar la lógica dentro. Esta es la esencia de una arquitectura de complemento. En general, las DLL muestran solo una lista de procedimientos o funciones. Las variables, clases, objetos dentro de la dll no son accesibles directamente a los procesos externos. Escribir un complemento implica mover la mayoría o la totalidad del código relevante a la DLL, donde todas las variables y objetos se pueden referenciar directamente.

Algo como Eclipse, en el que coloca el complemento en un directorio predefinido y la próxima vez que haga clic en algún Menú, verá nuevas entradas. Todo esto sin reiniciando su app o ejecutando una nueva versión del exe.

5

La característica que usted llama un Qt Plugin es formalmente un marco dentro de Qt que permite a los desarrolladores proponer un sistema de complemento para su aplicación. Qt Plugin maneja la carga dinámica de los complementos que la aplicación puede usar a través de la interfaz del complemento. Puede mirar Qt Plugin documentation para obtener más información y ejemplos.

+0

FYI ... El enlace no funciona. – Mitch

+0

¡Y el enlace funciona nuevamente! –

Cuestiones relacionadas