Pregunta: | 37146 - CREAR PLUGINS / LIBRERIAS |
Autor: | César Hernández Bañó |
Quiero hacer un programa que utilice plugins, al estilo del Winamp. El esquema general seria este: un programa principal, llamado main, y una serie de plugins, llamados plugin1, plugin2, etc. Cada plugin tendrá, por ejemplo, una funcion llamada init() y otra llamada end(). La idea es que cada plugin se pueda crear por separado del programa principal.
He intentado crear cada plugin como librerias compartidas (.so) y luego que el programa main llame a las funciones init() y/o end() de cada plugin. El problema es que, como el programa principal no "conoce" la existencia de los plugins, no me puede compilar las llamadas a init() y end(). Como puedo hacer esto? Agradeceria cualquier sugerencia. Gracias |
Respuesta: | César Hernández Bañó |
Hola.
Ya he encontrado respuesta para mi pregunta: el problema se reduce a usar las funciones dlopen (abrir libreria) y dlsyms(asignar simbolo); estan presentes en la libreria libdl. Si hacemos man dlopen veremos un ejemplo. Cada plugin debe crearse como una libreria compartida. |