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 :

Débutant: PB à la compilation


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 32
    Points : 30
    Points
    30
    Par défaut Débutant: PB à la compilation
    Je compile un programme élémentaire trouvé dans le livre Programming Windows de Charles Petzold et j'obtiens un message d'eurreur:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #include <windows.h>
    
    LRESULT CALLBACK WndProc &#40;HWND, UINT, WPARAM, LPARAM&#41; ;
    
    int WINAPI WinMain &#40;HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow&#41;
    &#123;
         static TCHAR szAppName&#91;&#93; = TEXT &#40;"HelloWin"&#41; ;
         HWND         hwnd ;
         MSG          msg ;
         WNDCLASS     wndclass ;
    
         wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
         wndclass.lpfnWndProc   = WndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon &#40;NULL, IDI_APPLICATION&#41; ;
         wndclass.hCursor       = LoadCursor &#40;NULL, IDC_ARROW&#41; ;
         wndclass.hbrBackground = &#40;HBRUSH&#41; GetStockObject &#40;WHITE_BRUSH&#41; ;
         wndclass.lpszMenuName  = NULL ;
         wndclass.lpszClassName = szAppName ;
    
         if &#40;!RegisterClass &#40;&wndclass&#41;&#41;
         &#123;
              MessageBox &#40;NULL, TEXT &#40;"This program requires Windows NT!"&#41;, 
                          szAppName, MB_ICONERROR&#41; ;
              return 0 ;
         &#125;
         
         hwnd = CreateWindow &#40;szAppName,                  // window class name
                              TEXT &#40;"The Hello Program"&#41;, // window caption
                              WS_OVERLAPPEDWINDOW,        // window style
                              CW_USEDEFAULT,              // initial x position
                              CW_USEDEFAULT,              // initial y position
                              CW_USEDEFAULT,              // initial x size
                              CW_USEDEFAULT,              // initial y size
                              NULL,                       // parent window handle
                              NULL,                       // window menu handle
                              hInstance,                  // program instance handle
                              NULL&#41; ;                     // creation parameters
         
         ShowWindow &#40;hwnd, iCmdShow&#41; ;
         UpdateWindow &#40;hwnd&#41; ;
         
         while &#40;GetMessage &#40;&msg, NULL, 0, 0&#41;&#41;
         &#123;
              TranslateMessage &#40;&msg&#41; ;
              DispatchMessage &#40;&msg&#41; ;
         &#125;
         return msg.wParam ;
    &#125;
    
    LRESULT CALLBACK WndProc &#40;HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam&#41;
    &#123;
         HDC         hdc ;
         PAINTSTRUCT ps ;
         RECT        rect ;
         
         switch &#40;message&#41;
         &#123;
         case WM_CREATE&#58;
              PlaySound &#40;TEXT &#40;"hellowin.wav"&#41;, NULL, SND_FILENAME | SND_ASYNC&#41; ;
              return 0 ;
              
         case WM_PAINT&#58;
              hdc = BeginPaint &#40;hwnd, &ps&#41; ;
              
              GetClientRect &#40;hwnd, &rect&#41; ;
              
              DrawText &#40;hdc, TEXT &#40;"Hello, Windows 98!"&#41;, -1, &rect,
                        DT_SINGLELINE | DT_CENTER | DT_VCENTER&#41; ;
              
              EndPaint &#40;hwnd, &ps&#41; ;
              return 0 ;
              
         case WM_DESTROY&#58;
              PostQuitMessage &#40;0&#41; ;
              return 0 ;
         &#125;
         return DefWindowProc &#40;hwnd, message, wParam, lParam&#41; ;
    &#125;
    En compilant sous DEV C++, j'obtiens les messages suivants:

    C:\DOCUME~1\CDRIC~1\LOCALS~1\Temp\ccQxbaaa.o(.text+0x96)
    [Warning] In function `WinMain':

    [Linker error] undefined reference to `GetStockObject@4'
    C:\DOCUME~1\CDRIC~1\LOCALS~1\Temp\ccQxbaaa.o(.text+0x1e4)
    [Warning] In function `WndProc':

    [Linker error] undefined reference to `PlaySoundA@12'


    En compilant sous Visual C++ 6, je n'ai pas de messages d'erreurs à la compilation, mais à la création de l'exécutable voici ce que j'obtiens:

    Linking...
    HelloWin.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/HelloWin.exe : fatal error LNK1120: 2 unresolved externals
    Error executing link.exe.

    HelloWin.exe - 3 error(s), 0 warning(s)


    Pouvez-vous m'éclairer ?

    Merci d'avance pour vos lumières

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    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 753
    Points : 10 703
    Points
    10 703
    Billets dans le blog
    3
    Par défaut
    http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_playsound.asp
    Windows NT/2000/XP: Included in Windows NT 3.1 and later.
    Windows 95/98/Me: Included in Windows 95 and later.
    Header: Declared in Mmsystem.h; include Windows.h.
    Library: Use Winmm.lib
    il te faut linker avec Winmm.lib.

    En fait c'est plutot libwinmm.a dans ton cas:
    http://c.developpez.com/faq/cpp/?pag...MES_devcpp_lib

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 32
    Points : 30
    Points
    30
    Par défaut
    Merci pour les infos. Il fallait aussi ajouter libgdi32.a pour la fonction GetStockObject().

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    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 753
    Points : 10 703
    Points
    10 703
    Billets dans le blog
    3
    Par défaut
    Pense à cliquer sur Résolu alors

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

Discussions similaires

  1. [débutant] problème de compilation
    Par LaseLiep dans le forum C
    Réponses: 12
    Dernier message: 16/12/2005, 20h40
  2. Réponses: 15
    Dernier message: 01/11/2005, 13h32
  3. [MASM32][Débutant] Erreur de compilation
    Par Priest dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 02/10/2005, 02h06
  4. Réponses: 12
    Dernier message: 26/08/2005, 10h02
  5. [Débutant]Erreur de compilation inconprehensible
    Par @r$£~%[ dans le forum C++
    Réponses: 15
    Dernier message: 14/08/2005, 20h04

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