Je me demandais simplement quelles sont mes options pour des implémentations multiples plate-forme pour le chargement dynamique des plugins utilisant des bibliothèques partagées. Jusqu'à présent, le seul que j'ai trouvé est: p>
Et je me demandais simplement si j'avais d'autres options? Essentiellement, je souhaite pouvoir mettre des plugins dans des fichiers d'objet partagés et les charger au moment de l'exécution et je voulais le faire sous forme de plateforme C ++. P>
3 Réponses :
Vous pouvez regarder Boost Extension, bien qu'il ait pas encore été accepté dans Boost. P>
La bibliothèque Boost.extension a été développé pour faciliter le développement de plugins et extensions similaires à logiciel utilisant des bibliothèques partagées. Les classes, les fonctions et les données peuvent être Mémoré de bibliothèques partagées et chargé par l'application. P> blockQuote>
Joli. J'adore les bibliothèques de boost, je verrai à quel point cela sert de se séparer de Boost proprement dite.
Ne fais pas ça. L'auteur d'origine a déprécié son propre travail. blog.redshoelace.com/2014/01/c0x.html#linkinks
Depuis 2016, Boost V1.61.0 a ajouté DLL. Référence . Documentation pour 1.73.0
QT a un joli Système de plug-in . Vous devriez jeter un oeil sur le deuxième partie de cette page. P>
QT saurait ce qu'ils font, j'aurais dû penser à eux, en lisant maintenant. Merci.
Si vous voulez quelque chose de simple et léger, essayez: https://pocoproject.org/docs /package-foundation.sharedlibrary.html
Utilisation de la classe SharedLibrary Il faut trois lignes pour appeler une fonction dans une bibliothèque partagée C: p>
Poco::SharedLibrary lib("libfoo.so"); int (* foo)(int) = reinterpret_cast<int (*)(int)>(lib.getSymbol("foo")); printf("answer %d\n", foo(5));
Dupliqué possible de Stackoverflow.com/ Questions / 43322 / ...