Bonjour,
j'ai un problème au niveau de la définition d'une fonction :
BOOL WINAPI DllMain (HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved)
avec l'erreur suivante :
Merci pour toute aideerror C2731: 'DllMain' : function cannot be overloaded
Bonjour,
j'ai un problème au niveau de la définition d'une fonction :
BOOL WINAPI DllMain (HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved)
avec l'erreur suivante :
Merci pour toute aideerror C2731: 'DllMain' : function cannot be overloaded
Bonjour,
Ton problème se situe au niveau de la définition de la fonction ou de son utilisation???
Parceque la définition me semble correcte.
Tu lui passes quoi comme paramètres?
Tu n'aurais pas un UNICODE dans les définitions du préprocesseur ?
j'ai modifié en :
j'ai maintenant :BOOL WINAPI DllMain (HANDLE hDLL, DWORD dwReason, LPVOID lpReserved)
error LNK2005: DllMain déjà défini(e) dans systeme.obj
définitions préprocesseur :
NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;_USRDLL;$(ARCHFAM);$(_ARCHFAM_);POCKETPC2003_UI_MODEL
C'est pour ça que ça ne marche pas, tu as 2 définitions de la fonction, il ne sait pas laquelle choisir.
si j'enlève :
des définitions du préprocesseur, tout fonctionne bien mais c'est peut-être une connerie de faire ça.;_USRDLL;
voui.Envoyé par FamiDoo
_USRDLL conditionne plein de choses dans les includes systeme.
Personnellement, le main de mes DLLs est défini comme ça et je n'ai jamais eu de problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 BOOL APIENTRY DllMain (HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { ... }
Dans le message d'erreur, tu n'as pas un lien vers "previous declaration of DllMain" ?
Qu'on voie quel est le prototype ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Non hélàs je n'ai pas ca.
J'ai :
Mon prototype :uafxcw.lib(dllmodul.obj) : error LNK2005: DllMain déjà défini(e) dans systeme.obj
A noter que dans le prototype j'ai changé HINSTANCE PAR HANDLEBOOL WINAPI DllMain (HANDLE hDLL, DWORD dwReason, LPVOID lpReserved)
C'est pas ça le problème.
Quand tu fais ton édition des liens, cette fonction est trouvée plusieurs fois.
Elle est déclarée où ?
Donc, ni l'un ni l'autre ne marchent.
Hum...
Dis-moi, tu ne serais pas en train de nous faire une MFC Regular DLL ?uafxcw.lib
Les MFC Regular DLL doivent utiliser la DllMain() de MFC, et utiliser un objet dérivé de CWinApp.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
elle est déclarée dans mon systeme.cpp
et dans la bibliothèque "uafxcw.lib(dllmodul.obj)" apparemment ?
Oui je fais une DLL, mais je ne veux pas utiliser la DllMain() de MFCDis-moi, tu ne serais pas en train de nous faire une MFC Regular DLL ?
Les MFC Regular DLL doivent utiliser la DllMain() de MFC, et utiliser un objet dérivé de CWinApp.
A ce moment, il ne faut pas lier avec cette bibliothèque.
Oué mais pas mal d'erreurs dans ce cas.
Ca marche dans le cas ou je vire
_USR_DLL des définitions du préprocesseur mais je ne sais pas si ca se fait ?
Partager