begin process at 2012 05 29 16:56:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Problème de dll


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de dll

mardi 1 mars 2011 à 13:59:26 | Problème de dll

ArthurAuguste

Membre Club
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 un site dans lequel quelqu’un dit d’utiliser :
COD32DYN.OBJ comme fichier de démarrage, or ce fichier ne figure pas dans bcc55\lib\ enfin la même personne 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,
mardi 1 mars 2011 à 15:15:19 | Re : Problème de dll

ArthurAuguste

Membre Club
Demi-réponse à moi-même
Finalement, j’ai juste rajouté «extern "C" __declspec(dllexport) » devant la fonction contenant le corps de la DLL:
extern "C" __declspec(dllexport) DWORD WINAPI Entrypoint(LPVOID lpParameter)
{
corps de ma dll
}
avec toujours plus loin:
BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved)
{
n0instThread=hInst;
return TRUE;
}

et ça marche !!! le Rundll32.exe Mydll, Entrypoint me lance bien ma dll

Question : ma solution est-elle propre ou y a-t-il des trucs inutiles ?
Autre question : je n’ai toujours pas résolu le compile avec linkage direct de bcc32 ?

Merci pour vos réponses
mercredi 2 mars 2011 à 19:26:06 | Re : Problème de dll

ArthurAuguste

Membre Club
Résolu, utiliser -WD au lieu de -tWD comme paramètre de bcc32 même si la doc dit à tort que ça fait la même chose


Cette discussion est classée dans : exe, erreur, dll, linkage, mydll


Répondre à ce message

Sujets en rapport avec ce message

C# probleme d'exportation d'exe [ par golum ] voila g écrit un prog en C# mais bon si je fait mon exe il me manque une dll de base pour l'écécuter (cette dll est payante).suis-je oubligé de faire dll [ par zelze ] (vc++ 6.0)Voila j'ai vu que quelqu'un avait également posez une question sur les dll et Vieuxlion a répondu a des question que j'allais poser mais il 1 dll - 2 exe (3 possibilités ;o) ) [ par sena ] Bonjour,voila j'ai construit une dll.Au chargement de cette dll un thread est lancer pour pouvoir effectuer une réception UDP en permanence.Mon pb est exporter une fonction [ par lahou ] Bonjourest-ce que qqn sait comment faire pour exporter une fonction d'un exe comme on le fait avec une dll avec __declspec(dllexport)En fait je veux f erreur cl.exe [ par Synhok ] Je suis un programmeur debutant en C++ et j'utilise Visual C++, j'essaie de faire une application toute simple ("Hello World"), il est impossible qu'i chargement de dll [ par juliol ] bonjour, j'ai un probleme...j'utilise une dll avec loadlibrary(), lorsque je lance mon programme dans VC++il n'y a aucun probleme, elle se chargeil en comment relier des dll à un seul projet ? [ par ilimo ] bonjour,j'ai trois projets :P1 : est une dllP2 : est une dllP3 : c'est le exeje peux relier les .lib de P1 et P2 au programme exede cette façon quand problème de copier-coller pour les .h des dll ? [ par ilimo ] bonjour,j'ai trois projets : P1 : dll : contient la classe aP2 : dll : contient la classe bP3 : exe : contient la classe c qui se sert d probleme de librairie [ par zincben ] Bonjour, je travaille sur le portage d'une appli 16bits en 32bits. et j'ai un petit souci.J'ai fait des modifs pour la passer en 32b qui sont en princ erreur MSVCRT.DLL - MFC [ par Rololo ] Salut à tous,lors de l'éxécution de mon programme, j'ai cette erreur qui s'affiche lorsque je clique sur un bouton : "unhandled exception in PROGRAMME


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales