Bonjour tout le monde,

Je cherche à trouver un moyen pour extraire l'ensemble des méthodes présentes dans une bibliothèque dynamique (C++) (.so ou .dll). Pour le moment, j'utilise des outils externes comme nm sous linux ou Dependency Walker pour les lister.

J'aimerais pouvoir charger ces méthodes de manière dynamique directement depuis un programme. Est-ce qu'il y a des bibliothèques open source qui permettent ça?

Je pensais à une interface de ce genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
//allMethods comprend les différentes méthodes avec leurs arguments associés
std::vector<Methods> allMethods = listMethods("myBiblio.so"); //listMethods("myBiblio.dll");
//allMethods[0].functionType() retournerait un std::function avec le bon paramètre de retour ainsi que les bons arguments
allMethods[0].functionType() func1 = loadMethod<allMethods[0].functionType()>(allMethods[0].name());
Il faudra bien sûr que je trouve une méthode pour convertir un string en type (int, double, etc....) voir en classe. (c'est le principe de réflexion non?)

Merci pour tout.