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

Windows Discussion :

PB de buil : unresolved external symbol


Sujet :

Windows

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut PB de buil : unresolved external symbol
    Bonjour,
    J'ai un petit programme qui fait appel a une fonction déclarée PARTOUT et pourtant elle ressort UNSRESOLVED au Build sous Visual C++ !
    Si quelqu'un peut m'aider ...
    L'Include
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <windows.h> 
    #include <shellapi.h> 
    
    extern HINSTANCE    hInst;     
    extern HWND            hWnd;     
    extern HWND            hstatic; 
    
    void SetDlgItemUrl&#40;HWND hdlg,int id,const char *url&#41;; 
                             
    LRESULT CALLBACK WindowProcedure&#40;HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam&#41;;

    Fonction principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include "winproc.h" 
    
    HINSTANCE    hInst; 
    HWND        hWnd; 
    HWND        hstatic; 
    
    
    LRESULT CALLBACK WindowProcedure&#40;HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam&#41; &#123; 
    
        switch &#40;message&#41; &#123; 
            case WM_CREATE&#58; 
                 SetDlgItemUrl&#40;hstatic,1,"http&#58;//www.mon_adresse.fr/"&#41;; 
                return 0; 
    
            case WM_DESTROY&#58;             
                PostQuitMessage&#40;0&#41;;         
                return 0;                 
        &#125; 
        // pour les autres messages, on renvoie le traitement par défaut 
        return DefWindowProc&#40;hwnd, message, wParam, lParam&#41;; 
    &#125;
    [/b]

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    C'est pas le tout de déclarer une fonction, ça permet juste de compiler. Il faut aussi indiquer au linker où elle se trouve, sinon ça revient à dire "j'utilise cette fonction qui se trouve quelque part", mais tu ne dit pas où elle se trouve. Elle sort d'où ta fonction ? (attentiob avec extern c'est pareil).

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut
    Bonjour,
    Dans mon espace de travail (workspace sous visual C++), j'ai trois modules dont un est la fonction en question
    Alors effectivement j'ai du rajouter dans Projet/settings/link, la bibliotheque Shell32.lib pour shellapi.h mais là le compilateur ou plutot l'editeur de liens devrait trouver tous les .obj correspondant au 3 modules dont il a besoin ?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    La fonction SetDlgItemUrl ne fait pas partie de l'Api WIN32. Il faut que tu ajoutes ce code à ton projet :
    http://www.wischik.com/lu/programmer/setdlgitemurl.html

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    La fonction SetDlgItemUrl ne fait pas partie de l'Api WIN32. Il faut que tu ajoutes ce code à ton projet :
    http://www.wischik.com/lu/programmer/setdlgitemurl.html
    ET
    Citation Envoyé par dede92
    Dans mon espace de travail (workspace sous visual C++), j'ai trois modules dont un est la fonction en question
    C'est tout a fait ce que j'ai fait. La fonction a la quelle tu fais reference est bien intégrée à mon projet . Le fait qu'elle porte l'extension .cpp alors que les autres son en .c serait il genant ?
    http://www.photosreflex.net/projet_visual.jpg

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Quelle est ton erreur ?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut
    L'erreur, au build une fonction non résolue !
    Pourtant la fonction est bien déclarée partout et le source est dans le projet !
    Le resultat de la compil sous Visual C :
    http://www.photosreflex.net/output.jpg

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Tu as mélangé des fichiers .c et .cpp. Renomme les tous pareil.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    525
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 525
    Points : 212
    Points
    212
    Par défaut
    Et bien voilà, pourquoi je n'ai pas testé avant !
    C'est effectivement les extensions differentes qui ne plaisaient pas (maintenant je sais) comme je l'avais soulevé plus haut
    Le fait qu'elle porte l'extension .cpp alors que les autres son en .c serait il genant ?
    Merci encore.

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

Discussions similaires

  1. unresolved external symbol
    Par shirya dans le forum C++
    Réponses: 3
    Dernier message: 09/12/2005, 09h12
  2. [debutant]unresolved external symbol
    Par Battosaiii dans le forum C
    Réponses: 11
    Dernier message: 02/12/2005, 16h25
  3. unresolved external symbol _IID_IDi
    Par PC23 dans le forum DirectX
    Réponses: 6
    Dernier message: 05/08/2005, 10h38
  4. unresolved external symbol _IID_IDirectDraw7
    Par lvdnono dans le forum DirectX
    Réponses: 2
    Dernier message: 15/06/2004, 21h05
  5. Réponses: 4
    Dernier message: 23/04/2004, 16h06

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