Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
873 connectés 

  FORUM HardWare.fr
  Programmation
  C++

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°169065
darkoli
Le Petit Dinosaure Bleu
Posté le 01-07-2002 à 16:41:00  profilanswer
 

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
mood
Publicité
Posté le 01-07-2002 à 16:41:00  profilanswer
 

n°169086
Olivier51
Posté le 01-07-2002 à 17:06:38  profilanswer
 

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 ...

n°169119
darkoli
Le Petit Dinosaure Bleu
Posté le 01-07-2002 à 17:35:14  profilanswer
 

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
n°169129
hellbilly
free smile
Posté le 01-07-2002 à 17:46:53  profilanswer
 

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 ?

n°170345
darkoli
Le Petit Dinosaure Bleu
Posté le 03-07-2002 à 11:26:22  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

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

 

Sujets relatifs
petit prog en C qui ne marche pas[open gl] pourquoi mon programme marche pas ??? (tjs pas 2)
DLL[C] Les structures ... tableaux .. le mien marche po ...
[PHP] Boucle qui marche po... j'y comprends rien[VC++] Classe dans une DLL : fonctions virtuelles et erreur LNK2001
[SDL + thread + DLL] Est-il possible de faire un mélange des trois ?[PHP] mon top 10 ne marche pas
[C-C++] SendInput /keybd_event comment ça marche?Pourquoi cette requete ne marche paS?
Plus de sujets relatifs à : [DLL, C] Comment ça marche ce bordel à roulette ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR