Linktool Fehler LNK2019



  • Ich kriege immer wieder diese Fehlermeldung:

    1>tad.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)" in Funktion ""struct HWND__ * __cdecl ErstelleHauptfenster(struct HINSTANCE__ *)" (?ErstelleHauptfenster@@YAPAUHWND__@@PAUHINSTANCE__@@@Z)".
    1>C:\Users\Josh\documents\visual studio 2010\Projects\Today\Debug\Today.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.

    bei diesem Code:

    //...
    void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst)
    {
    
      hScroll = CreateWindow ("EDIT",
    	                      NULL,
    						  WS_VISIBLE | WS_CHILD | WS_VSCROLL | ES_AUTOVSCROLL |  WS_BORDER | ES_MULTILINE | ES_READONLY ,
    						  20,100,
    						450,100,
    						hWnd,(HMENU)ID_SCROLL,
    						hInst,
    						NULL);
    
      const TCHAR* text = TEXT(szAGB);
    SendMessage(hScroll, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(text)); 
    
      hText = CreateWindow ("STATIC",
                            "Gedichte",
                            WS_VISIBLE | WS_CHILD | ES_CENTER ,
                            0, 0,
                            450, 20,
                            hWnd,
                            (HMENU)ID_STATICTEXT,
                            hInst,
    						NULL);
    
      hPlay = CreateWindow ("BUTTON",
    	                     "Play",
    						 BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
                               190, 50,
                               95, 40,
                               hWnd,
                               (HMENU)ID_PLAY,
                               hInst,NULL);
    
      hBeenden = CreateWindow ("BUTTON",
                               "Beenden",
                               BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
                               300, 50,
                               95, 40,
                               hWnd,
                               (HMENU)ID_BTN_BEENDEN,
                               hInst,
                               NULL);
    
    } 
    
    LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
                                 WPARAM wParam, LPARAM lParam,HINSTANCE hInst)
    {
    	HDC                       hdc, hdcMem;
        static HBITMAP      hBitMap;
        static BITMAP        bitmap ;
        PAINTSTRUCT        ps ;
    
      switch (message)
      {
            case WM_CREATE:
              hBitMap = (HBITMAP)LoadImage(0,"bitmap.bmp",IMAGE_BITMAP, 0, 0,
                     LR_DEFAULTSIZE|LR_LOADFROMFILE|LR_CREATEDIBSECTION); 
    
              if(hBitMap==NULL)
              {
                MessageBox(hWnd,"Bild konnte nicht geladen werden","Error",0);
              return -1;
              }
    
              GetObject (hBitMap, sizeof (BITMAP), &bitmap) ;        
    
              return 0;
    
           case WM_PAINT:
             hdc = BeginPaint (hWnd, &ps) ;
             hdcMem = CreateCompatibleDC (hdc) ;
             SelectObject (hdcMem, hBitMap) ;
             BitBlt (hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, 
                                        hdcMem, 0, 0, SRCCOPY) ;
             DeleteDC (hdcMem) ;
             EndPaint (hWnd, &ps) ;        
             return 0 ; 
    
        case WM_DESTROY:
        {
    	  DeleteObject(hBitMap);
          PostQuitMessage (0);
          return (0);
    
        }
    
        //Child Fenster
        case WM_COMMAND:
        {
          switch (wParam)
          {
    
    	  case ID_PLAY:
    		  PlaySound("wndw.wav",0,SND_ASYNC|SND_FILENAME);
    		  break;
    
            case ID_BTN_BEENDEN:
            {
              int Resultat; 
    
              Resultat = MessageBox (hWnd, "Wirklich beenden?",
                                     "Programm beenden",
                                     MB_YESNO | MB_ICONQUESTION);
    
              if (Resultat == IDYES)
              {
    
                PostQuitMessage (0);
                return (0);
    
              }
    
              return (0);
    
            }
          } break;
        } break;
      }
      return (DefWindowProc (hWnd, message, wParam, lParam) );
    
    }
    

    Weis jemand woran das liegt ? 😕



  • Wo hast du denn die problematische Funktion ErstelleHauptfenster()?

    Ansonsten solltest du mal die vom Linker geforderte Funktion mit dem vergleichen, was du angelegt hast - deine WindowProc() hat einen überflüssigen Parameter



  • Stimmt hInst aber den habe ich nur reingetan weil der Compiler gemeckert hat das er bei der Callback Funktion das er nicht weiß was das ist ^^
    Aber jetzte funzts Danke !


Anmelden zum Antworten