1 nicht aufgelöster externer Verweis



  • Hallo,

    ich benutze CodeBlocks als IDE und als Compiler den Visual Studio 2008 C++ Compiler. Wenn ich aber z.B.: folgenden Code schreibe:

    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    int main()
    {
        HWND hWnd;
    
        hWnd = FindWindow(0,"Testprog");
        if(!hWnd)
            return 0;
    
        return 0;
    }
    

    erhalte ich folgende Fehlermeldung:

    ||=== Speichermanipulation, Debug ===|
    main.obj||error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__FindWindowA@8" in Funktion "_main".|
    bin\Debug\Speichermanipulation.exe||fatal error LNK1120: 1 nicht aufgelöste externe Verweise.|
    ||=== Build finished: 2 errors, 0 warnings ===|

    Unter Settings - Compiler and Debugger habe ich folgendes bei "Search Directorys" eingestellt: unter compiler:
    D:\Programme\Programmierung\Visual Studio 2008\VC\include
    D:\Programme\Microsoft SDKs\Windows\v6.0A\include
    D:\Programme\Programmierung\boost\boost_1_40

    und unter Linker:
    D:\Programme\Programmierung\Visual Studio 2008\VC\lib
    D:\Programme\Microsoft SDKs\Windows\v6.0A\lib
    D:\Programme\Programmierung\boost\boost_1_40

    Kanns sein, dass ich da etwas falsch eingestellt habe? Ich habe schon öfters dieses Problem gehabt...



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL (C++ Builder) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Du hast die User32.lib nicht in Dein projekt eingefügt.



  • Muss ich diese jedes mal über eine #pragma Anweisung einfügen oder kann ich das auch gleich Über die Linker/Compiler Optionen machen? Wenn ja, wo sollte ich diese *.dll normalerweise finden? Danke schon mal.



  • Ich kenne CodeBocks nicht. In VS würde sich diese Frage nicht stellen.

    Setze es als Linker Option oder als pragma. Wäre wurscht.

    Die User32.dll gehört zu jedem Windows OS.



  • Danke es funktioniert.

    Ich habe den Pfad mit bei den Compiler-Pfaden aufnehmen müssen und dann über:
    #pragma comment(lib,"User32.lib")
    Die Library einfügen müssen.
    Danke.


Anmelden zum Antworten