Fichier dll

cs_amina08 Messages postés 2 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 8 avril 2008 - 6 avril 2008 à 13:26
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 6 avril 2008 à 14:53
bonjour,
Je voudrais savoire comment créer et utiliser un fichier dll dans mon programme C++ ?
Et comment je peux connaitre les fonction existantes dans une dll deja compiler ?
Merci d'avance

1 réponse

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 avril 2008 à 14:53
Avec VC++, suffis simplement de créer un projet DLL.
Pour exporter tes fonctions, tu peux utiliser le mot clé __declspec(dllexport).
__declspec(dllexport) void __stdcall toto1 (void) {...}

Cependant, ce mot clé ajoutera une décoration au nom des fonctions. Pour exporter de façon "standard", on utilise un fichier .def que l'on remplit avec le nom des fonctions exportées avec, en son entête, le mot EXPORTS

EXPORTS
    toto1
    toto2
    etc. etc.

Le linker (ou le compilo peut-importe) te générera une librairie static (.lib) que tu pourras lier au projet où tu souhaites utiliser ta DLL.
Tu peux aussi créer un fichier header (.h) qui contiendra les prototypes de tes fonction que tu pourras inclure dans les fichiers sources la demandent.
Si tu as utilisé __declspec(dllexport) pour exporter tes fonctions, il faudra utiliser __declspec(dllimport) dans la définition de tes prototypes.

__declspec(dllimport) void __stdcall toto1 (void);

Pour connaître les fonctions exportées d'une dll, utilise un programme fait pour ça (dependency walker par exemple). Cependant, sans le prototype de la fonction, ceci est complètement inutile.

C++ (@++)<!--
Rejoignez-nous