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

Visual C++ Discussion :

Problème d'édition de lien avec Visual Studio 2013


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut Problème d'édition de lien avec Visual Studio 2013
    Salut à tous

    J'avais un projet qui fonctionnait sous visual studio 2005 et je suis passé à la version 2013.
    Maintenant quand je le compile il me met des erreurs d'édition de lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error LNK2019: symbole externe non résolu "public: __thiscall CLogPalette::CLogPalette(unsigned short,int,class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >)" (??0CLogPalette@@QAE@GHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z) référencé dans la fonction "protected: virtual int __thiscall CMINDEF_INTEL2013Dlg::OnInitDialog(void)" (?OnInitDialog@CMINDEF_INTEL2013Dlg@@MAEHXZ)
    J'ai pourtant renseigné les champs
    • Dépendance additionnelles avec les noms de mes bibliothèques
    • Répertoires supplémentaires des bibliothèques


    Y a t'il moyen de savoir où il a cherché les bibliothèque lors de l'édition de lien?

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

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Commencez par vérifier que la librairie exporte bien "??0CLogPalette@@QAE@GHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z" en utilisant dumpbin.

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Elle l'exporte forcément puisque ça fonctionnait avec visual studio 2005 et que les bibliothèque n'ont pas changé.
    Ceci dit par acquis de conscience j'ai fait un dumpbin Tools.dll /Export et le résultat et le suivant
    76 4B 00028300 ??0CLogPalette@@QAE@GHV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Bingo!
    undname.exe ??0CLogPalette@@QAE@GHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z

    donne "public: __thiscall CLogPalette::CLogPalette(unsigned short,int,class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >)"

    undname.exe ??0CLogPalette@@QAE@GHV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z

    donne "public: __thiscall CLogPalette::CLogPalette(unsigned short,int,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >)"

    Vous cherchez (le linker) la version UNICODE de ATL::CStringT utilisant les MFC (avec une C-Runtime en librairie statique vraisemblablement) et dans la librairie, c'est une version ASCII utilisant la C-Runtime en Dll qu'on trouve.

    C'est pas pareil .

  5. #5
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Ok mais comment puis je corriger le problème?
    je suis chez moi et je n'ai pas le code sous la main mais de mémoire il s'agit de la déclaration du constructeur de la classe CLogPalette
    qui est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public CLogPalette(DWORD Palette, BOOL var, CString Nom)

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Le problème, c'est "CString Nom".
    J'espérais plus un "const CString& Nom" pour éviter des copies inutiles, mais bon.

    CString est une classe à géométrie variable en fonction des constantes de compilations.

    Votre projet, qui ne link pas, interprète "CString" comme égale à "ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >", en gros, une string UNICODE (because wchar_t), avec une API à la MFC (because StrTraitMFC).
    Pour votre librairie "CString" est égale à "ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >", en gros, une string ASCII(because char), avec une API à la MFC (because StrTraitMFC) et le _DLL, faudrait voir dans les includes si c'est lié à la version Dll/static des MFC ou de la C-Runtime.


    Pour que cela marche, il faut que votre programme et votre librairie ait la même définition de "CString", il faut donc pour cela que les options de compilations de votre programme et votre librairie soient les mêmes, au moins sur le choix UNICODE/ASCII, MFC/pasMFC, MFC en Dll/en static et C-Runtime en Dll/en static.

    Si c'est une librairie "du commerce", il y a de grosse chance que vous utilisiez la mauvaise version de la librairie car, si elle exporte des CString aussi salement, elle devrait fournir une version différente pour que interprétation possible de CString.

Discussions similaires

  1. [pthreads w32][visual studio] problème d'édition de lien avec la librairie static
    Par Yruama_Lairba dans le forum Bibliothèques, systèmes et outils
    Réponses: 2
    Dernier message: 13/08/2014, 21h03
  2. Réponses: 2
    Dernier message: 01/03/2011, 16h11
  3. Problème à l'édition des liens avec wxPlotCtrl
    Par _MattU_ dans le forum wxWidgets
    Réponses: 2
    Dernier message: 12/03/2009, 08h40
  4. Problème d'utilisation d'Ogre3D avec visual studio 2008
    Par Xystres dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 27/01/2009, 00h26
  5. Problème à l'édition des liens avec BCC55 et Xerces
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/11/2003, 14h50

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