Erreur de link Visual C++ 2005 Express Edition

Résolu
gmorello Messages postés 9 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 6 mars 2008 - 14 sept. 2007 à 10:28
gmorello Messages postés 9 Date d'inscription vendredi 22 décembre 2006 Statut Membre Derniè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.

Merci d'avance pour votre aide

8 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
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.
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
14 sept. 2007 à 10:48
Fais-tu appel à d'autre dll ?

Shell
0
gmorello Messages postés 9 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 6 mars 2008
14 sept. 2007 à 11:50
Non juste celle la, mais le plus anormale c'est que j'ai déjà fait ce genre de chose sans que cela pose le moindre problème.
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gmorello Messages postés 9 Date d'inscription vendredi 22 décembre 2006 Statut Membre Derniè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 ?
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
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?
0
gmorello Messages postés 9 Date d'inscription vendredi 22 décembre 2006 Statut Membre Derniè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.
0
gmorello Messages postés 9 Date d'inscription vendredi 22 décembre 2006 Statut Membre Derniè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.

Merci encore de ton aide
0