2010-10-19 8 views
8

Me preguntaba cuáles eran mis opciones para implementaciones multiplataforma para la carga dinámica de complementos utilizando bibliotecas compartidas. Hasta el momento el único que he encontrado es:Plataforma multiplataforma C++ Dynamic Library Plugin Loader

Y me preguntaba si tuviera otras opciones? Básicamente, quiero ser capaz de agregar complementos en archivos de objetos compartidos y cargarlos en tiempo de ejecución, y quería hacerlo de forma C++ multiplataforma.

Editar: Encontré este Dr Dobbs Post de 2007; seguramente alguien ha encontrado algo más desde entonces.

+0

duplicado Posible de http: // stackoverflow .com/questions/43322/whats-safe-for-ac-plug-in-system – dgnorton

Respuesta

7

Puede consultar Boost Extension, aunque todavía no se haya aceptado en Boost.

La biblioteca Boost.Extension ha sido desarrollado para facilitar el desarrollo de plugins y extensiones similares al software usando bibliotecas compartidas. Las clases, funciones y datos pueden ser disponibles en las bibliotecas compartidas y cargadas por la aplicación.

+0

Agradable. Me encantan las Bibliotecas Boost, veré cuán cerca está esto de convertirse en un refuerzo adecuado. –

+2

No hagas esto. El autor original ha dejado de lado su propio trabajo. http://blog.redshoelace.com/2014/01/c0x.html#links – johnwbyrd

3

Qt tiene un bonito plugin system. Debería echarle un vistazo al second part de esa página.

+0

Qt sabría lo que están haciendo, debería haberlos pensado, leyendo ahora. Gracias. –

0

Si quieres algo sencillo y ligero intento: https://pocoproject.org/docs/package-Foundation.SharedLibrary.html

Utilización de la clase SharedLibrary se necesitan tres líneas para llamar a una función en una biblioteca compartida C:

Poco::SharedLibrary lib("libfoo.so"); 
int (* foo)(int) = reinterpret_cast<int (*)(int)>(lib.getSymbol("foo"));  
printf("answer %d\n", foo(5));