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

C++ Discussion :

LNK2001, LNK2019 et méthode externe


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 116
    Points : 62
    Points
    62
    Par défaut LNK2001, LNK2019 et méthode externe
    Bonjour à tous,

    J'ai récupéré du code et ai essayé de l'inclure dans un bout de prog.

    La compilation se passe bien mais je rencontre des soucis pour editer les liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1>DLL.obj : error LNK2001: symbole externe non résolu "bool g_IsNT" (?g_IsNT@@3_NA)
    1>FileDir.obj : error LNK2019: symbole externe non résolu "bool g_IsNT" (?g_IsNT@@3_NA) référencé dans la fonction "bool __cdecl NWindows::NFile::NDirectory::MyGetSystemDirectory(class CStringBase<wchar_t> &)" (?MyGetSystemDirectory@NDirectory@NFile@NWindows@@YA_NAAV?$CStringBase@_W@@@Z)
    1>FileFind.obj : error LNK2001: symbole externe non résolu "bool g_IsNT" (?g_IsNT@@3_NA)
    1>FileIO.obj : error LNK2001: symbole externe non résolu "bool g_IsNT" (?g_IsNT@@3_NA)
    Les fichiers DLL.cpp, FileFind.cpp et FileIO.cpp contiennent tous une declaration de la variable g_IsNt en extern.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef _UNICODE
    extern bool g_IsNT;
    #endif
    Tandis que le fichier FileDir.cpp appelle cette variable dans un if.

    Je pense que le soucis vient de la declaration extern mais je n'ai aucune idée de comment le résoudre.

    Si quelqu'un peut m'éclairer.
    Merci par avance.

    @moderateurs : j'ai groupé les deux problemes de link ensemble, s'il le faut je ferai deux sujets.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    est-ce que tu trouves le corps de g_IsNT quelque part?
    Peut-être que tu as oublié de spécifier une bibliothèque (.lib ou .dll)?

    Le plus simple serait de donner tes sources si ton projet n'est pas trop gros.
    Si le bout de code que tu as récupéré est disponible quelque part précise-le.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Ta réponse m'a aidé merci bien.

    En fait j'avais bien ajouter le fichier contenant le "corps" de g_IsNT (je ne sais pas si on peut vraiment parler de corps pour une variable) mais je ne l'avais pas inclus directement à mes sources.

    En faisant celà j'ai résolut les deux erreurs.

    Merci beaucoup

    Pour infos, le code provient du SDK de 7z que je ne trouve pas super bien documenté d'ailleurs.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    Citation Envoyé par azboul Voir le message
    En fait j'avais bien ajouter le fichier contenant le "corps" de g_IsNT (je ne sais pas si on peut vraiment parler de corps pour une variable) mais je ne l'avais pas inclus directement à mes sources.
    Désolé, je devais être trop fatigué : j'ai lu un peu vite.
    En tous cas, je suis content que cela t'ai servi quand même!

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

Discussions similaires

  1. Méthode externe appelée dans un Swingworker
    Par JaroBx dans le forum EDT/SwingWorker
    Réponses: 2
    Dernier message: 14/07/2010, 11h31
  2. Réponses: 2
    Dernier message: 09/07/2010, 14h13
  3. Réponses: 1
    Dernier message: 19/06/2008, 08h31
  4. [ActiveX] Retour de BSTR sur une méthode externe
    Par mr.saucisse dans le forum MFC
    Réponses: 28
    Dernier message: 11/01/2006, 15h47
  5. Déclaration de classes et méthodes externes
    Par rulianf dans le forum C++
    Réponses: 6
    Dernier message: 15/09/2005, 15h26

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