DLL

neophenix83 Messages postés 63 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 4 mai 2007 - 30 mars 2006 à 16:44
ebooserge Messages postés 137 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 16 juillet 2007 - 31 mars 2006 à 00:14
Bonjour,

j'ai un fichier C qui contient des fonctions déclarées comme ceci :

MY_DLLEXPORT int fonction1( )

avec

#if defined(BUILD_PHAPI_DLL)
#define MY_DLLEXPORT __declspec(dllexport)
#elif defined(PHAPI_DLL)
#define MY_DLLEXPORT __declspec(dllimport)
#endif
#endif

#ifndef MY_DLLEXPORT
#define MY_DLLEXPORT
#endif

Or, à la compiltaion, j'ai une erreur (sous VC++) de type:
Error 56 error LNK2019: unresolved external symbol _fonction1 referenced in function _test callout.obj

Donc, vu que j'ai inclu mon .h au projet...je pense qu'en fait, ce qu'il faut que je fasse, c'est que j'associe la dll associée à ce point H. Pouvez vous me confirmer cela? est ce quye ca doit etre un .DLL ou un .LIB ?!
Suffit il que je mette le .DLL (ou .LIB) dans le projet, et ca sera ok ?

Et est ce __declspec(dllimport) ou __declspec(dllexport) qui doit etre défini en tant que MY_DLLEXPORT pour que ca soit ok, et que le linker trouve les fonctions?!?!?

D'avance, merci !!!

1 réponse

ebooserge Messages postés 137 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 16 juillet 2007 1
31 mars 2006 à 00:14
pour rester dans un cadre général, il faut souvent inclure la librairie statique, c'est a dire le .lib pour se lier a une dll.
mais toutes les dll n'ont pas de .lib, auquel k il faut s'y rattacher avec l'entete qui contient les definitions des fonctions de la dll.
maintenant dans ton cas particulier, en effet il n'arriver pas a se lier a cette fonction
essaie directement la syntaxique suivante
extern "C" __declspec(dllexport) int fonction1()

si ca ne arche pas alors t'es dans la merde.
sinon va jeter un coup d'oeil sur msdn en francais. dossier complet sur les dll
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vccore/html/_core_DLL_Topics.asp
0
Rejoignez-nous