C/C++ et fonctions DLL
I'mhere
-
fd -
fd -
bonjour tt le monde,
j'aimerai bien savoir est ce que c'est possible d'appeller les fonctions contenu dans une DLL avec un programme c ou c++.
si oui merci d'expliquer la procédure. c urgent
merci
j'aimerai bien savoir est ce que c'est possible d'appeller les fonctions contenu dans une DLL avec un programme c ou c++.
si oui merci d'expliquer la procédure. c urgent
merci
7 réponses
-
Concernant les dll, il faut utiliser conjointement LoadLibrary et GetProcAddress. Admettons que tu as une dll dummy.dll et une fonction foo(char *message) que tu veux appeler, ca donnera :
HINSTANCE hLib = NULL; void (WINAPI *foo)(char *message); // pointeur sur func BOOL LoadDLL() { hLib = LoadLibrary("dummy.dll"); if(hLib == NULL) return FALSE; foo = (void*)GetProcAddress(hLib, "_foo@4"); if(foo = NULL) { FreeLibrary(hLib); hLib = NULL; return FALSE; } return TRUE; }
Apres tu appels la fonction normalement (n'oublie pas FreeLibrary en quittant).
COIN! -
-
-
et comment on fait ça de façon non dynamique?
Salutation !
Char Snipeur -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
je suppose un simple include...
COIN! -
je ne croi pas, un include met le texte directement dans le fichier, c'est un genre de lien. Les DLL sont déjà compiler. à moins que le compilateur ne prenne pas en compte le langage déjà compiler, mais j'en doute fort...
Salutation !
Char Snipeur -
Pour le faire de façon non dynamique il te suffit de linker le .lib à ton projet.
(par contre avec GetProcAdresse n'oublie pas de déclarer tes fonctions en extern "C")