Problème d'importation de classe d'une DLL - C++ - Programmation
Marsh Posté le 10-02-2003 à 18:53:03
Je suppose que tu n'as pas le .lib de ta dll pour te fatiguer ainsi à lier dynamiquement ta dll.
Car si tu l'as, il suffit de faire un include "ta_dll.h" et filer le "ta_dll.lib" au linker (#pragma comment(lib, "ta_dll.lib" )) pour que ce soit fini ...
Bref, si tu persiste, sache qu'il y a deja des templates ecrites specialement pour cela et ca devrait te simplifier la vie.
ex :
http://www.codeguru.com/dll/DllStub.html
y'en a d'autres (j'ai pas les liens ici desole)
Apres pour ton pblm, faut d'abord trouver ce qui va pas ...
- fonction mal exportee ?
- fonction mal importee ?
- fonction boguee ?
- ...
cree un simple prog de test de ta dll a partir du .lib (aucun soucis d'import donc) qui appelle ta fonction. SI ca marche, ta dll est ok (export + no bug)
donc ca merde a l'import => utilise le .lib ou inspire toi des templates cites ci-desus.
Mais au vu de cette phrase :
Citation : le programme qui appelle cette DLL plante si on veut se mettre en debug |
je suis pas sur que le probleme soit la ou tu le cherches ...
Marsh Posté le 11-02-2003 à 00:31:58
Merci pour ta réponse , j'ai trouvé mon problème, je compilais en debug alors que j'utilisais la release
Heureusement que j'avais corrigé d'autres choses (et que du coup ça n'aurait pas marché quand même), parce que passer autant de temps pour un pb aussi idiot, je me serais flingué
Marsh Posté le 11-02-2003 à 12:51:48
Aujourd'hui, c'est une classe que j'aimerais importer, mais apparemment ça marche pas pareil qu'une fonction.
Sur les MSDN ils ne précisent rien de particulier je crois
Sachant que pour la continuité du programme (et surtout parce que je connais pas encore le nom de la DLL) ce serait bien que je lie ça dynamiquement aussi.
Marsh Posté le 10-02-2003 à 16:26:49
Salut !
Je reprend (pour mon stage) le code d'une DLL que quelqu'un d'autre a écrit, et j'ai besoin de créer une fonction dans une DLL existante, et de l'utiliser dans une autre DLL (qui elle même est utilisée par un programme).
Spa très clair, mais c'est pas grave.
Donc dans le .h de la DLL dans lequelle je veux que soit ma fonction, je met :
Dans le .cpp :
Dans le .h de la DLL où je souhaite utiliser cette fonction :
Puis en protected :
Et dans le .cpp :
Dans le constructeur de ma classe :
Je ne peux pas malheureusement pas faire de debug (le programme qui appelle cette DLL plante si on veut se mettre en debug), mais avec un fichier texte, je sais que ma dll se charge bien, mais pas ma fonction.
Qu'est ce qui ne convient pas dans ce code ? Ca va faire 2j que je suis sur ce pb là, j'en peux plus !!
Merci d'avance !
Message édité par raph77 le 11-02-2003 à 12:49:38