Probleme beim kompilieren!



  • Hallo Leute!

    ich hab ein kleines problem. habe mir das erste beispiel meines windows buches geschnappt
    und will einfach nur ein leeres weisses fenster erzeugen. Verstehen kann ich den code
    natürlich, nur bekomme ich beim compilieren eine fehlermeldung.
    im buch steht ich muss nur die Winmm.lib linken damit ich die Funktion PlaySound
    benutzen kann. Diese Funktion habe ich aus diesem Programm aber entfernt. Trotzdem habe ich
    die Winmm.lib in VC++ 6 gelinkt. man kann ja nie wissen.

    hier erstmal der code! (Muss richtig sein weil aus buch, und laesst sich vom mitgelieferten
    Projekt auch compilieren.)

    #include <windows.h>
    
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
    {
         static TCHAR szAppName[] = TEXT ("HelloWin") ;
         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 (NULL, IDI_APPLICATION) ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         wndclass.lpszMenuName  = NULL;
         wndclass.lpszClassName = szAppName;
    
         if (!RegisterClass (&wndclass))
         {    // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit 
              MessageBox (NULL, TEXT ("Programm arbeitet mit Unicode und setzt Windows NT voraus!"), 
                          szAppName, MB_ICONERROR) ;
              return 0 ;
         }
    
          hwnd = CreateWindow (szAppName,                 // Name der Fensterklasse
                      TEXT ("Das erste echte Programm"),  // Fenstertitel
                      WS_OVERLAPPEDWINDOW,                // Fensterstil
                     CW_USEDEFAULT,                      // X-Position des Fensters
                      CW_USEDEFAULT,                      // Y-Position des Fensters
                      CW_USEDEFAULT,                      // Fensterbreite
                      CW_USEDEFAULT,                      // Fensterhöhe
                      NULL,                               // übergeordnetes Fenster
                      NULL,                               // Menü
                      hInstance,                          // Programm-Kopiezähler (Programm-ID)
                      NULL) ;                             // zusätzliche Parameter
    
         ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
    
         while (GetMessage (&msg, NULL, 0, 0))
         {
              TranslateMessage (&msg) ;
              DispatchMessage (&msg) ;
         }
         return msg.wParam ;
    }
    
    LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
         HDC         hdc ;
         PAINTSTRUCT ps ;
    
         switch (message)
         {
         case WM_CREATE:
              return 0 ;
    
         case WM_PAINT:
              hdc = BeginPaint (hwnd, &ps) ;
              EndPaint (hwnd, &ps) ;
              return 0 ;
    
         case WM_DESTROY:
              PostQuitMessage (0) ;
              return 0 ;
         }
         return DefWindowProc (hwnd, message, wParam, lParam) ;
    }
    

    und hier nun noch die fehlermeldung !

    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/InitWindow.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.
    

    Was hab ich vergessen? muss ich doch noch eine andere Lib linken???
    Dezi sagt danke 🙂



  • Du hast nen Projekt für ne Konsolen Anwenung erstellt aber ne Window Anwendung erstellt...



  • Oh Mann 🙂 Danke Evil. Das wars auch schon !!!


Anmelden zum Antworten