Charger une dll dynamiquement (portable)

Soyez le premier à donner votre avis sur cette source.

Vue 7 654 fois - Téléchargée 732 fois

Description

C'est un tout petit code, juste une classe en fait, qui permet de charger des fonctions ou des objets définis dans une DLL ou une lib dynamique sous UNIX de façons portable.
En gros, on a un fichier .cpp qui contient du code à être mis dans une DLL, genre une fonction "void ma_func()", et on la charge dynamiquement depuis un exe; on peut alors, depuis cet exe, appeler ma_func().

L'avantage de ce code c'est qu'il est portable sous Linux (rajouter l'option -ldl à la compilation) et Windows, et qu'il permet d'éviter de linker le prog à la DLL au moment de la compilation (ça peut être utile, par exemple pour faire un système de plug-ins).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Funto66
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3 -
Un header c'est un fichier .h...mais par contre je vois pas ce que vient faire PHP dans ton histoire...
scalpto
Messages postés
5
Date d'inscription
lundi 14 novembre 2005
Statut
Membre
Dernière intervention
27 janvier 2008
-
Ok merci et le header c est quoi l'extension de son fichier?
Arnaud16022
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2 -
Un symbole c'est le nom d'un fontion implémentée dans la dll/ le .so et qui est déclaré dans le header fourni avec la dll
scalpto
Messages postés
5
Date d'inscription
lundi 14 novembre 2005
Statut
Membre
Dernière intervention
27 janvier 2008
-
Bonjour
Jesuis en train d utiliser les programme sur le chargement de DLL mais j 'ai un ptit probreme avec cette partie de code:

lib_func = (LibFunc)lib.GetSymbol("lib_func");
value = (int*)lib.GetSymbol("value");

if(!lib_func)
printf("Erreur : symbole non trouve\n");
else
(*lib_func)(*value);

lib.Close();
return 0;
en faite je ne sais pas ce que sais la lib_fonc donc j ai toujour le message "symbole non trouve".
J'ai telecharger php4 dedans il y a bien interpreteur php qui est la dll a charger mais en ce qui conserne les symbole je ne sais pa ce que sait.
Merci de votre aide
Arnaud16022
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2 -
wééé
oki, thanks
++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.