[Dev c++ 4.9.8] Lier une dll a un projet

Lier une dll a un projet [Dev c++ 4.9.8] - C++ - Programmation

Marsh Posté le 30-03-2004 à 14:16:35    

Je cherche à utiliser des classes que j'ai mises au sein d'une dll, j'ai ajouté dans la fenetre "outil/option du compilateur/ajouter ces commandes à l'édition de lien" ceci :
-l libFormatCentral.a
J'ajoute que j'ai placé le .dll et le fichier .a dans le meme repertoire. Or voici mon log de compilation :

Code :
  1. Compilateur: Default compiler
  2. Building Makefile: "G:\devtest2\Makefile.win"
  3. Exécution de  make...
  4. make.exe -f "G:\devtest2\Makefile.win" all
  5. g++.exe -c main.cpp -o main.o -I"C:/Utilitaires/Programmation/Dev-Cpp/include/c++"  -I"C:/Utilitaires/Programmation/Dev-Cpp/include/c++/mingw32"  -I"C:/Utilitaires/Programmation/Dev-Cpp/include/c++/backward"  -I"C:/Utilitaires/Programmation/Dev-Cpp/include" 
  6. main.cpp: In function `int main(int, char**)':
  7. main.cpp:9: `FormatCentral' undeclared (first use this function)
  8. main.cpp:9: (Each undeclared identifier is reported only once for each function
  9.    it appears in.)
  10. main.cpp:9: `c' undeclared (first use this function)
  11. main.cpp:9: parse error before `(' token
  12. make.exe: *** [main.o] Error 1
  13. Exécution terminée


 
Comme vous pouvez le constater il n'y a pas de trace du chargement de la dll et donc ce qui devrait fonctionner ne fonctionne pas :(, si quelqu'un pouvait me refiler un tuyau ca me ferait plaisir @+

Reply

Marsh Posté le 30-03-2004 à 14:16:35   

Reply

Marsh Posté le 30-03-2004 à 14:18:45    

là c'est pas un problème de DLL, t'as même pas le prototype de FormatCentral  

Reply

Marsh Posté le 30-03-2004 à 14:24:02    

Taz a écrit :

là c'est pas un problème de DLL, t'as même pas le prototype de FormatCentral  


en fait cette classe se trouve dans la dll d'ou le probleme

Reply

Marsh Posté le 30-03-2004 à 14:25:31    

tu as le .h qui va avec ?

Reply

Marsh Posté le 30-03-2004 à 14:27:12    

Joel F a écrit :

tu as le .h qui va avec ?


le .a lié a la dll oui effectivement

Reply

Marsh Posté le 30-03-2004 à 14:27:35    

bobmorton a écrit :


le .a lié a la dll oui effectivement

moi j'ai mangé une pomme ce matin

Reply

Marsh Posté le 30-03-2004 à 14:27:47    

non le .h , le fichier include qui definit les interfaces des fonctions exportées par le DLL

Reply

Marsh Posté le 30-03-2004 à 14:27:59    

Taz a écrit :

moi j'ai mangé une pomme ce matin


 
 :pt1cable:

Reply

Marsh Posté le 30-03-2004 à 14:29:33    

Taz a écrit :

moi j'ai mangé une pomme ce matin


effectivement je répond pas a la question, mais je vois pas bien ce que vient faire un .h la dedans, il a été compilé dans la dll ca devrait suffir non?
apparemment ce qui definit les interfaces pour dev c++ en ce qui concerne les dll se trouve dans des fichiers .a, ca fonctionne sur un mode unix like apparemment


Message édité par bobmorton le 30-03-2004 à 14:31:10
Reply

Marsh Posté le 30-03-2004 à 14:45:01    

le truc c'est que c'est toi qui est entrain de compiler.
 
__apparemment__ t'as pas compris grand chose au bibliothèque (statique ou dynamiqueà, ça n'est qu'un entrepot de code binaire. si tu veux pourvoir l'utiliser, ilf aut dire à ton compilateur 1) ce qu'il y a dedans 2) comment l'utiliser
 
comme pour tout fonction, il te faut sa déclaration, donc un .h afin de compiler
ensuite, il faudra linker avec.
 
"g++.exe -c" t'en es encore à l'étape 1), pour le moment g++ en a rien a foutre de où est le code, il gueule parce qu'il sait pas ce que c'est que ton "FormatCentral"

Reply

Marsh Posté le 30-03-2004 à 14:45:01   

Reply

Marsh Posté le 30-03-2004 à 16:27:50    

Taz a écrit :

le truc c'est que c'est toi qui est entrain de compiler.
 
__apparemment__ t'as pas compris grand chose au bibliothèque (statique ou dynamiqueà, ça n'est qu'un entrepot de code binaire. si tu veux pourvoir l'utiliser, ilf aut dire à ton compilateur 1) ce qu'il y a dedans 2) comment l'utiliser
 
comme pour tout fonction, il te faut sa déclaration, donc un .h afin de compiler
ensuite, il faudra linker avec.
 
"g++.exe -c" t'en es encore à l'étape 1), pour le moment g++ en a rien a foutre de où est le code, il gueule parce qu'il sait pas ce que c'est que ton "FormatCentral"


Merci bien,je pensais justement que le role du .a etait de centraliser tout ce qui se trouvait dans les .h et de les regrouper pour n'avoir qu'un fichier par dll, du coup je capte pas bien l'intéret de .a, je vais tenter de me documenter un peu plus @+

Reply

Marsh Posté le 30-03-2004 à 16:31:03    

ben le .a, c'est le code binaire, le .h c'est grosso modo du vent, pour le compilateur te hurle pas dessus. quand tu compiles, tom compilateur compare les informations que lui donne le .h a l'usage que tu fais dans ton code. dès que c'est bon, il lie ton programme à la bibliothèque. le .h ne sert qu'à la phase de compilation

Reply

Sujets relatifs:

Leave a Replay

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