Erreur de link Visual C++ 2005 Express Edition [Résolu]

Signaler
Messages postés
9
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
9
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2008
-
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

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

Shell
Messages postés
9
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2008

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

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

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.
Messages postés
9
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2008

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