IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

problème avec un .lib


Sujet :

VC++ .NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut problème avec un .lib
    Bonjour,

    j'écris une application pour gérer un lecteur de carte à puce. Celui-ci est livré avec quelques exemples, dont un écrit en C++ pour visual studio 2005.
    Ce programme utilise la librairie winscard.
    Je l'ai testé avec succès sous VS2010.

    J'ai voulu créer une application console pour tester les fonctions de la librairie. J'ai une erreur de link lorsque j'appelle des fonctions définies dans cette librairie.

    J'ai pourtant ajouté winscard.lib dans mon projet, j'ai donné le chemin d'accès dans les dépendances supplémentaire des propriétés du projet (bien que dans le projet exemple, il n'y en ait pas besoin).

    Je ne vois plus ce que je peux faire.

    Merci pour vos propositions.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    J'ai une erreur de link lorsque j'appelle des fonctions définies dans cette librairie
    Les erreurs SVP.

    J'ai pourtant ajouté winscard.lib dans mon projet, j'ai donné le chemin d'accès dans les dépendances supplémentaire des propriétés du projet (bien que dans le projet exemple, il n'y en ait pas besoin).
    Beaucoup de fautes de vocabulaire, qui peuvent en cacher d'autres.

    On n'ajoute pas une lib à un projet, on l'ajoute aux "Dépendances supplémentaires" en entrée du linker.

    On ne donne pas le "chemin d'accès", on configure les "répertoires de bibliothèque" des "Répertoires VC++" pour que cette liste le contienne.

    Et c'est directement dans les propriétés de configuration que J'ai indiqué.

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    merci pour ta réponse.

    Beaucoup de fautes de vocabulaire, qui peuvent en cacher d'autres.
    D'accord, je vais essayer d'être plus précis

    On n'ajoute pas une lib à un projet
    C'est ce que je pensais en regardant l'explorateur de solution. winscard.lib apparait au bas de la fenêtre de la pièce jointe du projet que j'ai récupéré.

    on l'ajoute aux "Dépendances supplémentaires" en entrée du linker.
    J'ai bien ajouté winscard.lib (voir copie d'écran)

    On ne donne pas le "chemin d'accès", on configure les "répertoires de bibliothèque" des "Répertoires VC++" pour que cette liste le contienne.
    J'ai ajouté le dossier de mon projet dans lequel j'ai placé "winscard.lib

    Les erreurs SVP.
    En voici une, les autres faisant référence à d'autres fonctions de la librairie:
    "Erreur 10 error LNK2019: symbole externe non résolu _SCardBeginTransaction@4 référencé dans la fonction _main C:\Users\Jack\Documents\Visual Studio 2010\Projects\testACR38_console\testACR38_console\testACR38_console.obj"
    Images attachées Images attachées   

  4. #4
    Membre éprouvé
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 417
    Points : 1 247
    Points
    1 247
    Par défaut
    Tu as ajouté winscard.lib dans les dépendances supplémentaires, mais as-tu ajouter le chemin vers le dossier qui contient winscard.lib ?

    Tu devrais trouver un champ du genre "dossier des dépendances additionnelle" (désolé chez moi c'est en anglais ) dans la section "général" de de ton éditeur de lien. Il faut y ajouter le chemin vers le dossier qui contient winscard.lib.

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    tu veux parler de ceci? Dans ce cas, j'ai bien ajouté le dossier où se trouve le .lib.

    A+
    Images attachées Images attachées  

  6. #6
    Membre éprouvé
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 417
    Points : 1 247
    Points
    1 247
    Par défaut
    Effectivement, je parle bien de ça
    J'imagine que tu as essayé de mettre le chemin absolut... Au cas ou...

    As tu vérifier si le projet que tu configuré était bien celui qui était linké pendant que l'erreur se produit ?
    Si oui, tu dois pas avoir la bonne version de winscard.lib.

    Si tu ouvre ta lib dans un éditeur de texte, trouves-tu la chaîne "_SCardBeginTransaction@4" ? Par exemple, je la trouve dans les versions SDK 6.0A/7.0A, mais pas dans les versions x64/ia64/PocketPC.
    Si oui, est-ce que dumpbin (fourni dans 'install de VC++) te confirme que la lib est compatible avec ton architecture cible ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    J'imagine que tu as essayé de mettre le chemin absolut... Au cas ou...
    Oui, il s'agissait bien du chemin absolu (pas moyen de l'afficher au complet dans la fenêtre)

    As tu vérifier si le projet que tu configuré était bien celui qui était linké pendant que l'erreur se produit ?
    Oui, ma solution n'en comporte qu'un.

    Si tu ouvre ta lib dans un éditeur de texte, trouves-tu la chaîne "_SCardBeginTransaction@4" ?
    Oui, on y trouve bien SCardBeginTransaction sans la décoration (voir copie d'écran)

    Si oui, est-ce que dumpbin (fourni dans 'install de VC++) te confirme que la lib est compatible avec ton architecture cible ?
    Comme je ne vois pas trop quelle option permet de déterminer la compatibilité, j'ai mis l'option /ALL. Le rapport est joint (on y trouve bien à nouveau SCardBeginTransaction en passant).
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  8. #8
    Membre éprouvé
    Homme Profil pro
    R&D imagerie 3D / prog embarquée
    Inscrit en
    Mars 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : R&D imagerie 3D / prog embarquée
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 417
    Points : 1 247
    Points
    1 247
    Par défaut
    Citation Envoyé par jackk Voir le message
    Oui, on y trouve bien SCardBeginTransaction sans la décoration (voir copie d'écran)
    Si tu le trouves pas avec décoration, le linker n'a aucun chance d'y arrivé.

    Citation Envoyé par jackk Voir le message
    Comme je ne vois pas trop quelle option permet de déterminer la compatibilité, j'ai mis l'option /ALL. Le rapport est joint (on y trouve bien à nouveau SCardBeginTransaction en passant).
    La sortie de dumpbin indique que ta lib est en x64. Tu compiles bien ton code vers x64 ?

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    En plus des remarques de djuju :
    Moi, je vois _SCardBeginTransaction mais pas _SCardBeginTransaction@4, il y a donc très vraisemblablement un problème avec les conventions d'appels.
    C'est du _stdcall ou du _cdecl qui doit être utilisé ?

    Le header fourni ne le précise peut-être pas, et si la valeur par défaut est différente entre le compilateur ayant généré la lib et le votre, vous vous prenez ce genre de truc dans la figure.

    Il faut vérifier dans la documentation

  10. #10
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par djuju Voir le message
    La sortie de dumpbin indique que ta lib est en x64. Tu compiles bien ton code vers x64 ?
    Bravo, c'était çà.

    Merci pour tout.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec la lib Esky
    Par netfoot dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 02/04/2015, 17h27
  2. problème avec CapGetDriverDescriptionA Lib "avicap32.dll"
    Par Mario Rousson dans le forum VB.NET
    Réponses: 0
    Dernier message: 18/12/2013, 03h11
  3. Problème avec oleacc.lib suite à l'install de TMS component
    Par petitclem dans le forum C++Builder
    Réponses: 15
    Dernier message: 26/02/2009, 01h05
  4. Problème avec la lib lti et visual studio 2005
    Par pasqual dans le forum Visual C++
    Réponses: 3
    Dernier message: 25/11/2008, 16h31
  5. [VS 2008] Problème avec Libc.lib
    Par Ange44 dans le forum Visual C++
    Réponses: 4
    Dernier message: 05/09/2008, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo