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 :

error LNK2019: symbole externe non résolu


Sujet :

Visual C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Points : 53
    Points
    53
    Par défaut error LNK2019: symbole externe non résolu
    Bonjour,
    Je fais appel à vous car j'ai un gros problème.
    J'avais un code qui fonctionné très bien que vous pouvez trouver ici :
    http://www.developpez.net/forums/sho...light=bugmenot

    Ce matin, je lance Visual C++ Express et je compile le projet et voici le résultat :
    1>------ Début de la génération : Projet : Test Service, Configuration : Debug Win32 ------
    1>Édition des liens en cours...
    1>NTService.obj : error LNK2019: symbole externe non résolu __imp__SetServiceStatus@8 référencé dans la fonction _ServiceUpdate
    1>NTService.obj : error LNK2019: symbole externe non résolu __imp__RegisterServiceCtrlHandlerW@8 référencé dans la fonction _ServiceMain@8
    1>NTService.obj : error LNK2019: symbole externe non résolu __imp__RegCloseKey@4 référencé dans la fonction _ServiceSetDescription
    1>NTService.obj : error LNK2019: symbole externe non résolu __imp__RegSetValueExW@24 référencé dans la fonction _ServiceSetDescription
    [...]
    J'ai absolument rien touché au projet, mais je pense que mon Visual C++ a un sérieux problème.
    Je ne sais pas très bien m'en servir mais je comprend pourquoi sachant qu'a 80% il ne compile pas mes projets (comme ce matin).
    Je vous demande donc dans un dernier espoir comment corriger ces problèmes !

    PS: Un bon vieux linux avec des makefile n'aurait jamais provoqué de tel ***

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Assure-toi que, pour chacune des fonctions n'étant pas résolu, l'éditeur de lien voit la bonne bibliothèque.

    Ex :

    NTService.obj : error LNK2019: symbole externe non résolu __imp__SetServiceStatus@8 référencé dans la fonction _ServiceUpdate
    1) On enlève __imp__ et @x et on garde le nom de la fonction : SetServiceStatus.

    2) On va sur la MSDN en tapant le nom de la fonction. On tombe sur :

    http://msdn2.microsoft.com/en-us/library/ms686241.aspx

    3) tout en bas de la page, voir le tableau des "requirements", notamment à "Library" :

    Library : Use Advapi32.lib.
    4) S'assurer que le projet, dans tout les modes (Release, Debug ou Custom) , importe les bonnes bibliothèques. Pour cela, voir les options de l'éditeur de lien (linker) pour importer les *.lib.

  3. #3
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    Barre de menu "Projet"
    Menu "Propriétés de <Mon Projet>"
    Item "Propriétés de configuration"
    Item "Editeur de liens"
    Item "Entrée"
    Ligne "Dépendances supplémentaires" : soit advapi32.lib est dans les valeurs héritées, soit il faut l'ajouter..

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 35
    Points
    35
    Par défaut Symbole externe non resolu
    J'ai eu ces 3 erreurs dans mon code
    Comment faire pour les résoudre ?
    1>Utils.obj : error LNK2019: symbole externe non résolu _closedir référencé dans la fonction "struct CvHistogram * __cdecl buildHist(char *)" (?buildHist@@YAPAUCvHistogram@@PAD@Z)
    1>Utils.obj : error LNK2019: symbole externe non résolu _readdir référencé dans la fonction "struct CvHistogram * __cdecl buildHist(char *)" (?buildHist@@YAPAUCvHistogram@@PAD@Z)
    1>Utils.obj : error LNK2019: symbole externe non résolu _opendir référencé dans la fonction "struct CvHistogram * __cdecl buildHist(char *)" (?buildHist@@YAPAUCvHistogram@@PAD@Z)

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 182
    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 182
    Points : 12 316
    Points
    12 316
    Par défaut
    Ce sont des fonctions spécifiques Linux, soit code dans "Utils.cpp" est portable et vous avez oublié de spécifier les constantes de compilation permettant de compiler pour Windows ou le code n'est pas portable et vous devez utiliser les API Win32 à la place de ces 3 fonctions (qui ne sont pas portable directement sous Win32).

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Ce sont des fonctions spécifiques Linux, soit code dans "Utils.cpp" est portable et vous avez oublié de spécifier les constantes de compilation permettant de compiler pour Windows ou le code n'est pas portable et vous devez utiliser les API Win32 à la place de ces 3 fonctions (qui ne sont pas portable directement sous Win32).
    Oui c'est ça j'ai telechargé ce code de l'internet et je l'ai utlisé sous windows, mais comment je dois utiliser les API Win32 pourriez vous me préciser comment faire

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 182
    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 182
    Points : 12 316
    Points
    12 316
    Par défaut
    Si vous ne savez pas très bien se que vous faites, évitez de faire du code Frankenstein à coup de copier-coller. Il est jamais très beau, le code .

    Voici une implémentation de ces fonctions :
    http://www.two-sdg.demon.co.uk/curbr...nt/dirent.html

    Je vous conseille tout de même de vérifier la disponibilité d'une version Win32 ou portable du code initial.

Discussions similaires

  1. error LNK2019: symbole externe non résolu
    Par DakM dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2011, 01h06
  2. Réponses: 2
    Dernier message: 21/10/2010, 10h23
  3. error LNK2019: symbole externe non résolu
    Par sheep_one dans le forum Windows
    Réponses: 0
    Dernier message: 03/06/2010, 11h03
  4. error LNK2019: symbole externe non résolu
    Par Halloula dans le forum Visual C++
    Réponses: 3
    Dernier message: 28/11/2009, 02h19
  5. error LNK2019: symbole externe non résolu "void __cdecl MaFonction
    Par lolo le belge dans le forum Visual C++
    Réponses: 3
    Dernier message: 30/10/2009, 11h38

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