[DLL, C] Comment ça marche ce bordel à roulette ?

Comment ça marche ce bordel à roulette ? [DLL, C] - C++ - Programmation

Marsh Posté le 01-07-2002 à 16:41:00    

Donc j'ai un fichier C avec un main et des fonctions.
Tout marche comme il faut. Mais maintenant je veux en faire une DLL (virer le main) et ne laisser que les fonctions qu'j'appelle depuis l'exterieur.  
 
La compilation se passe bien mais lors de l'edition de lien, le 'link' ne trouve pas les fonctions utilisees. En fait elles sont renmmées avec un '_' devant et donc j'ai appris qu'il fallait ecrire un fichier '.def' pour indiquer le nom des fonctions et ça ne marche toujours pas.
 
Par contre quand je fais une dll avec une fonction toute simple qui n'utilise aucun fichier externe ça marche bien.
 
En fait des que je veux utiliser des librairies externes (que j'ai créées), il ne trouve pas les fonctions 'externes'.
 
C'est clair ?


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 01-07-2002 à 16:41:00   

Reply

Marsh Posté le 01-07-2002 à 17:06:38    

Tu utilises Borland comme compilateur, non ? J'ai déjà eu ce problème, j'ai réécrit ma DLL avec Visual C++ et plus de problème.
Sinon essaye de les appeller avec '_' devant ...

Reply

Marsh Posté le 01-07-2002 à 17:35:14    

Olivier51 a écrit a écrit :

Tu utilises Borland comme compilateur, non ? J'ai déjà eu ce problème, j'ai réécrit ma DLL avec Visual C++ et plus de problème.
Sinon essaye de les appeller avec '_' devant ...




 
Non le compilateur est VC++.
J'ai essayé avec l'interface de VC (en faisant un projet) et en ligne de commande.
 
Avec l'interface de VC++, il construit une DLL mais lorsque je veux l'utiliser il y a un problème : le format de la DLL n'est pas valide.
 
En ligne de commande : CL + LINK, il y le problème avec les noms de fonctions que j'ai indiqué plus haut.


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 01-07-2002 à 17:46:53    

DarkOli a écrit a écrit :

Donc j'ai un fichier C avec un main et des fonctions.
Tout marche comme il faut. Mais maintenant je veux en faire une DLL (virer le main) et ne laisser que les fonctions qu'j'appelle depuis l'exterieur.  
 
La compilation se passe bien mais lors de l'edition de lien, le 'link' ne trouve pas les fonctions utilisees. En fait elles sont renmmées avec un '_' devant et donc j'ai appris qu'il fallait ecrire un fichier '.def' pour indiquer le nom des fonctions et ça ne marche toujours pas.
 
Par contre quand je fais une dll avec une fonction toute simple qui n'utilise aucun fichier externe ça marche bien.
 
En fait des que je veux utiliser des librairies externes (que j'ai créées), il ne trouve pas les fonctions 'externes'.
 
C'est clair ?




Est-ce que dans ton projet ou tu veux utiliser tes fonctions de ta DLL tu inclus bien le *.lib de ta DLL ?
Est-ce que tu mets bien extern "C" devant tes fonctions exportées ?

Reply

Marsh Posté le 03-07-2002 à 11:26:22    

hellbilly a écrit a écrit :

 
Est-ce que dans ton projet ou tu veux utiliser tes fonctions de ta DLL tu inclus bien le *.lib de ta DLL ?
Est-ce que tu mets bien extern "C" devant tes fonctions exportées ?




 
C'est bon ça marche avec VC mais y'a un `ù`ù$^,; de paramètre de compilation a changer et comme d'habitude l'interface de VC et super explicite :fou:


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed