Bonjour,
J�essaie depuis plusieurs jours de faire marcher une dll qui utilise l�API32 sous Windows XP. Je compile avec Borland C/C++ compiler sans erreur de compilation et avec :
bcc32.exe -Twd -c Mydll.cpp
puis je linke avec ilink32 sans erreur de linkage et avec :
ilink32.exe -aa c0d32 /Tpd Mydll.obj,,import32 cw32
J�obtiens bien un fichier Mydll.dll
Mais quand j�essaie de le lancer avec rundll32.exe Mydll,Entrypoint
J�ai syst�matiquement le message suivant :
�RUNDLL entr�e manquante : Entrypoint�
Dans le source de ma dll j�ai la forme suivante :
DWORD WINAPI Entrypoint(LPVOID lpParameter)
{
corps de ma dll
}
puis plus loin:
BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved)
{
n0instThread=hInst;
return TRUE;
}
J�ai essay� aussi de faire: rundll32.exe Mydll,DllMain
Dans ce cas j�ai : �RUNDLL entr�e manquante : DllMain�
J�ai essay� aussi de supprimer du source la fonction DllMain et de remplacer la fonction point d�entr�e par :
BOOL WINAPI Entrypoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ){corps de la dll}
M�me erreur avec rundll !
Dans le linkage, j�ai essay� de remplacer c0d32 par: c0d32w, puis par: c0d32x, puis par: c0s32, toujours pas d�erreur de linkage, mais m�me erreur avec rundll.
A noter par ailleurs comme deuxi�me point mais c�est moins important que je n�ai jamais r�ussi � faire une compilation avec production directe du dll : si j�enl�ve le param�tre �-c� de la ligne :
Bcc32.exe, j�obtiens syst�matiquement l�erreur de linkage suivante :
Unresolved external '_main' referenced from C:\...\BCC55\LIB\C0X32.OBJ,
J�ai essay� de rajouter plusieurs param�tres dont : -DBUILD_DLL ou -DBUILD_DLL_export, de rajouter aussi le param�tre �L avec plusieurs librairies (dont c0x32), j�ai toujours la m�me erreur de linkage avec bcc32.
Enfin, concernant le premier point j�ai vu un message sur ce site dans lequel dj.motte dit d�utiliser :
COD32DYN.OBJ comme fichier de d�marrage, or ce fichier ne figure pas dans bcc55\lib\ enfin dj.motte dit aussi pour des raisons de compatibilit� d�utiliser : BOOL __stdcall _export strToLdouble( LPCSTR z, long double * val ); outre le fait que je ne comprends pas ce que �a fait, je ne vois pas o� il faut le mettre et en plus la fonction strToLdouble n�est pas reconnue par le compilateur.
Si quelqu�un pouvait m�aider essentiellement sur le 1er point, �a serait sympa.
Merci
Cordialement,