Bonjour, je me permet de poser une question sur une chose qui me chagrine.
Je suis tombé sur un article qui proposait la création de plugin en utilisant les fonctions de libdl.
Bon, je vais pas vous faire un long speach sur l'utilisation de ces fonctions mais pour l'utilisation de dlsym, il y a un problème ...
dlsym me renvoie un pointeur void * et il faut effectuer un cast par un pointeur de fonction pour récupérer la fonction de la bibliothèque que l'on vient de charger pour pouvoir utiliser cette fonction.
Cependant, un cast d'un pointeur void* en un pointeur de fonction n'est semble t'il pas autorisé par la norme (en tout cas c'est ce que me dis gcc).
Alors il y a une chose qui m'embête : dlsym semble être POSIX donc normalisé mais ne semble donc pas être compatible avec les normes du C. Il n'y aurait pas contradiction ?
Je prend l'exemple de dlsym mais il doit y en avoir d'autres.
Si quelqu'un a une explication ou même une solution pour contourner le problème ça m'interresse ...
Partager