2010-05-25 16 views
8

Necesito saber cómo comenzar a escribir una aplicación basada en la arquitectura de plug-in. Me refiero a cómo escribir un código base y permitir que otros desarrollen la aplicación agregando los complementos que escriben. Sé que hay algunos problemas para hacerlo en C++. la mayoría de las personas usa otro lenguaje, como python, para agregar complementos a su aplicación C++.plug-in arquitectura basada en la aplicación c/C++

+0

¿Quiere decir que los complementos deben escribirse en C++? – xtofl

+0

Depende de a qué sistema operativo (s) esté apuntando, hasta cierto punto –

+0

sí. pero me preocupa la compatibilidad binaria entre la aplicación principal y los complementos escritos en C++ – sepisoad

Respuesta

4

Creo que esta no es la respuesta esperar, pero podría intentar examinar las fuentes Rainmeter. Está escrito en C++ (en mi opinión, algunos lugares se podrían hacer mejor, pero en general está bien) y toda la aplicación está hecha de manera que solo maneja los complementos.

Incluso la API simple se realiza a través de complementos, también hay un montón de ejemplos de plugins contribuidos, es decir, escritos por otra persona (también lo hice un día).

Creo que en realidad podría estudiar muchos trucos nuevos en el desarrollo basado en complementos mirando otras aplicaciones.

También para mencionar, otra buena muestra es Miranda IM.

Editar: Además, si han de la misma tarea, no me habría importado añadir un poco de python (o algo así) back-end a mi solicitud y utilizarlo como la lengua de SDK (por ejemplo, usando boost::python).

+0

como dijiste, necesito algunos casos para estudiar, gracias por los enlaces. – sepisoad

+0

aunque python es una solución viable y se usa ampliamente como un lenguaje extendido, necesito rechazar las dependencias de la aplicación final, – sepisoad

1

¿podría definir puntos de acceso en su aplicación con la que se podría comunicar una aplicación externa?

digamos que define algún mecanismo de tubería con nombre o un socket TCP/IP, donde la aplicación externa llamaría a esta API para manipular su aplicación?

dado que necesita registrar estos complementos en la aplicación central antes de permitirles usar su aplicación. incluso podría agregar certificados privados públicos para autenticar el origen de este complemento, (es decir, para firmar el complemento con una clave privada donde las instancias de su aplicación se validarían contra una clave pública)

4

Usted debe:

  • definir una interfaz
  • cargar el plugin y darle esta interfaz

Tu lector será capaz de comunicarse con la aplicación host a través de esta interfaz. Eso significa que debe pensar cuidadosamente en lo que quiere que hagan sus complementos.

Probablemente necesite soportar varias versiones de la interfaz si su aplicación de host cambia y agrega funcionalidades.

Cuestiones relacionadas