cs_mamag
Messages postés48Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 6 octobre 2005
-
16 juin 2005 à 17:52
cs_mamag
Messages postés48Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 6 octobre 2005
-
17 juin 2005 à 16:30
Bonjour,
je souhaiterais construire une DLL, pour cela j'ai suivi les consignes d'un tutorial trouvé sur le site internet.
j'ai insérer ce bout de programme:
#include "stdafx.h" // si vous êtes sous VC++
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
(je ne sais pas à qui cela correspond)
j'ai ensuite mes fonctions définies comme suit:
MU_connect(CString chemin, CString& etat, CString& defaut)
à la compilation je n'ai pas d'erreur par contre qd je construit la DLL, j'ai les erreurs suivantes:
fcs42d.lib(dllmodul.obj) : error LNK2005: [mailto:_DllMain@12 _DllMain@12] already defined in IMU_DLL.obj
Debug/IMU_DLL.dll : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Je sais pas si ça va marcher ou quoi (juste réflexion comme ça).
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 16 juin 2005 à 18:46
ncoder> ce n'est un pb de compilation. Apparemment tu as créé
plusieurs DllMain, il faut que tu n'en n'ai qu'un (c'est le point
d'entrée de la DLL, qui peut être appelé pour plusieurs raisons
(attach/detach))
cs_mamag
Messages postés48Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 6 octobre 2005 17 juin 2005 à 16:30
j'ai enfin réussi à créer une dll.
en créant un projet WIN32 Dynamic Link Library, j'ai juste rajouté ceci dans mon code:
//déclaration de la fonction
extern "C"__declspec(dllexport) WINAPI IMU_connect(CString* etat)
sans utiliser le .def et le BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
car ca générit des erreurs. mais est-ce correct?
mais maintenant je souhaiterais la tester en C++, si possible, mais comment faire? la dll doit retourner au pg principal une valeur de type CString.
je te remercie de consacrer un peu de ton temps pour mon problème.