Probleme de Linkage (lors de l'utilisation d'une librairie)

cs_Cassidy Messages postés 39 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 11 mai 2005 - 11 mai 2005 à 11:25
 jfadeuilhe - 18 juin 2013 à 11:53
<!--StartFragment --> Je dois réaliser un DLL en C++ pour interfacer des API de lecture de carte
J'arrive à appeller la DLL api_lec.dll mais je desirerais importer la librairie api_lec.lib
pour ne pas avoir à installer 2 DLLs

Je développe sous Microsoft Visual C++ 6

J'inclue bien les .h api_lec.h et win32def.h dans mon projets
J'ai mis mes .lib et .h dans un dossier include et j'ai configurer mon projet en ajoutant le chemin qui menent à ce dossier

project setting / link / input / additional library path / "MonChemin"
project setting / C/C++ / Preprocessor / additional include directories / "MonChemin"

Option du projet C/C++ :

/nologo /MTd /W3 /Gm /ZI /Od /I ".\Include\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CPSPGC" /FR"Debug/" /Fp"Debug/DxISECsv.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c

Option du projet Link :

api_lec.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"Debug/DxISECsv.pdb" /debug /machine:I386 /def:".\DxISECsv.def" /out:"Debug/DxISECsv.dll" /implib:"Debug/DxISECsv.lib" /pdbtype:sept /libpath:".\include"

Mais lorsque je compile, a l'édition des lien j'ai une erreur

Searching Libraries
Searching .\include\cpsw32.lib:
Searching .\include\cptabw32.lib:
Searching .\include\api_lec.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\kernel32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\user32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\gdi32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\winspool.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\comdlg32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\advapi32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\shell32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\ole32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\oleaut32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\uuid.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\odbc32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\odbccp32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\olepro32.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\comsupp.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\LIBCMTD.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\OLDNAMES.lib:
Searching C:\Program Files\Microsoft Visual Studio\VC98\LIB\libcpmtd.lib:
Done Searching Libraries
End Pass1
BasicCsv.obj : error LNK2001: unresolved external symbol _Hn_Finir
Debug/DxISECsv.dll : fatal error LNK1120: 1 unresolved externals

Je pense que j'ai un problème avec la configuration de mon projet visual c++ mais je ne vois pas du tout lequel

en esperant que vous pourrez m'aider
le vous en remercie par avance

++
Cassidy

6 réponses

cs_thedestiny Messages postés 56 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 30 juin 2008
11 mai 2005 à 14:23
Parfois ce genre d'erreur apparaît lorsqu'un header est inclu dans 2 fichiers ( le compilo aime pas trop ), donc utiliser un #pragma once au tout début des headers pourrait peut être régler ceci.

Si c'est pas ca je vois pas trop car ta librairie est pourtant bien ajouté au projet et c'est confirmé lors de la compilation :s

Amicalement,
The Destiny
0
cs_Cassidy Messages postés 39 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 11 mai 2005
11 mai 2005 à 15:01
Merci beaucoup pour cette réponse malheureusement, ça ne règle pas le problème :(

Effectivement le plus bizarre est que la librairie est bien ajoutée moi non plus je ne vois pas du tout pourquoi ça passe pas : Normalement ça devrait marcher !!!

En attendant je code en explicite en chargeant la dll
mais bon c'est quand même pas l'ideal

Si quelqu'un d autre a une idee
siou plait :)

Merci encore
Cass
0
cs_bib34690 Messages postés 22 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 10 mai 2011
15 mars 2007 à 10:43
j'ai le meme probleme que toi, mais je sais seulement qu'il faut créer un fichier .def ...
...

IMPORTS

api_lec.Lec_OuvertureSessionCPS

api_lec.Lec_FermetureSessionCPS

api_lec.Lec_IntroductionMstCPS

api_lec.Lec_RetraitMhtCPS

api_lec.Lec_LectureVitale

...

je l'ai créé mais le compilateur semble ne pas en tenir compte...si tu trouves ça m'interesse...
0
6SU7 Messages postés 3 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 27 avril 2011
27 avril 2011 à 14:34
Bonjour

Vous avez réussi à intégrer cette dll depuis ?

Si oui vous pouvez poster une solution complète ?

Merci
0

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

Posez votre question
cs_bib34690 Messages postés 22 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 10 mai 2011
10 mai 2011 à 19:33
c'était pas la DLL mais le .LIB qu'on cherchait à utiliser.
Pour la DLL, tu ne devrais pas avoir de pb...
0
pas de pb pour le .lib, mais toujours des erreurs de link sur l'accès aux fonctions de la dll

Le fichier .def, nécessaire d'après doc d'utilisation, génère une erreur "IMPORTS" non définit

Si une solution opérationnelle existe je suis preneur !!

Jacques
0
Rejoignez-nous