Auteur: Xavier Sirvent Date: À: 'guilde@imag.fr' Sujet: Re: [PROG] dlsym et les objets
Xavier Sirvent wrote:
> Bonjour,
>
> Dans un programme, j'ai besoin de charger explicitement des libraires .so
> Pour cela, j'utilise la fonction dlopen().
> Ensuite, j'ai besoin de trouver les adresses des fonctions qui
> m'intéressent et j'utilise dlsym().
> Tant que j'utilise des fonctions extern "C", j'arrive sans problème à
> trouver le pointeur sur mes fonctions.
>
> Maintenant, j'essaie d'ajouter un soupçon d'objet dans mes librairies.
> Mes librairies contiennent maintenant
> des classes qui sont des singleton (la classe C a donc une méthode
> statique : C* instance() )
>
> Ai-je un moyen d'accéder a mes méthodes instance() qui ne sont pas
> extern "C" mais quand même statiques???
> Je précise quand même que le moyen qui consiste à ajouter à la librairie
une méthode extern "C"
qui ferait un new de mon objet puis qui me renverrait le pointeur sur
l'objet créé fonctionne mais ne me convient pas:
J'aimerais bien ne pas passer par une fonction extern "C" mais rester
tout le temps en "C++".
> De manière plus générale, y a-t-il des moyens de manipuler
> dynamiquement des librairies de classes plutôt que
> des librairies de fonctions?
>
> Merci
>
> Xavier
>
>
>