gmorello
Messages postés9Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention 6 mars 2008
-
14 sept. 2007 à 10:28
gmorello
Messages postés9Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention 6 mars 2008
-
14 sept. 2007 à 15:41
Bonjour,
Je désire creer une dll qui s'appuie elle même sur une autre dll (api_lec.dll) Pour cela je dispose du fichier .lib fourni avec.
J'ai bien indiquer le nom du fichier .lib dans les propriétés de mon projet.
Propriétés/linker/input/additionals dependencies.
A la compilation 0 err et 0 warning
Mais à la génération du projet voici ce que j'obtient:
4DPlugin.obj : error LNK2001: unresolved external symbol _Hn_Init.
J'ai comme l'impression que le fichier .lib n'est pas pris en compte.
J'ai essayé avec un #pragma comment mais sans effet.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 14 sept. 2007 à 14:56
Pas la peine (pour le DEF), c'est juste une facon parmi d'autres de dire au compilo d'exporter telles fonctions.
Est-ce-que tu as essayé de mettre extern "C" { en début du .h (avec } tout à la fin), si le .h était destiné à un projet en C peut-être qu'il n'y est pas.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 14 sept. 2007 à 12:56
As-tu bien spécifié le chemin complet pour accéder à la lib, ou encore placé la lib dans le dossier du projet (est-ce-qu'il la trouve quoi)? Je sais question stupide mais des fois...
Vous n’avez pas trouvé la réponse que vous recherchez ?
gmorello
Messages postés9Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention 6 mars 2008 14 sept. 2007 à 14:00
oui j'ai bien tout revérifié.
J'ai essayer d'enlever le fichier du répoertoir en laissant le chemin d'accès dans les proriétés et une erreur me retourne que le fichier n'est pas trouvé. quand je le remets le message n'apparait plus.
Je me demande si cela ne vient pas du contenu du fichier api_lec.lib ? est-il possible de vérifier sa cooérance par rapport au fichier api_lec.dll ?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 14 sept. 2007 à 14:43
T'as bien déclaré ta fonction __declspec(dllexport) (ou mise en fichier DEF ou etc...) dans le projet dll, __declspec(dllimport) dans le projet destination?
gmorello
Messages postés9Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention 6 mars 2008 14 sept. 2007 à 14:53
En fait je n'ai pas acces au source de la dll à partir de laquelle je fait import. Je n'ai eu que le fichier .h, la lib, la dll et une doc de descriptions des fonctions (parametres etc ...).
AUCUN FICHIER DEF !? Qu'est ce que c'est je ne m'en suis jamais servis. Je vais essayer de me renseigner.
gmorello
Messages postés9Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention 6 mars 2008 14 sept. 2007 à 15:41
mettre extern "C" n'a pas résolu mon problème mais cela m'a mis sur la bonne voie.
J'ai renommer mes fichier en .c au lieu de .cpp avec quelque modif de code pour la compatibilité et là ça marche plus d'erreur de link.
cela veut-il dire que je suis obligé de developper ma dll en C et non en C++ ?
Arf !! si c'est le cas c'est un peu génant mais bon.