Undefined reference to `WndProc(HWND__*, unsigned int, unsigned int, long)@16
-
Hi Leute,
Ich hoffe Ihr könnt mir helfen. Ich mache gerade das WinApi Tutorial von http://www.win-api.de/. Als IDE nutze ich Code::Blocks und als Compiler MinGW bzw. g++. Bei folgendem Code...#define STRICT #include "windows.h" const char szWitz[] = "\"Ich steh' schwer auf Umweltschutz\", sagt Peter.\n" "\"Ich werfe zum Beispiel alte U-Bahn-Fahrscheine nie weg,\n" "sondern benutze sie mehrmals.\""; const char szAppName[] = "WinApi Tutorial"; int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { int iMsgReslult = MessageBox(NULL, szWitz, "Trololololo", MB_ICONINFORMATION | MB_OKCANCEL); if(iMsgReslult == IDOK) { MessageBox(NULL, "Na dann... :-D", "Sie haben \"OK\" gedrückt.", MB_OK); } else if(iMsgReslult == IDCANCEL) { MessageBox(NULL, "Mögen Sie den Witz etwa nicht?", "Sie haben \"Abbrechen\" gedrückt.", MB_OK); } else { MessageBox(NULL, "Ungültiger Wert von iMsgResult: " + iMsgReslult, "Error", MB_OK); return -1; } LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HWND hWnd; MSG msg; WNDCLASS wcWnd; wcWnd.style = CS_NOCLOSE | CS_HREDRAW | CS_VREDRAW; wcWnd.lpfnWndProc = WndProc; wcWnd.cbClsExtra = 0; wcWnd.cbWndExtra = 0; wcWnd.hInstance = hInstance; wcWnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); wcWnd.hCursor = LoadCursor(NULL, IDC_IBEAM); wcWnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wcWnd.lpszClassName = szAppName; wcWnd.lpszMenuName = NULL; return 0; }
...erhalte ich den Fehler:
obj\Debug\main.o||In function `WinMain@16':| H:\BB08\WinApiTut\main.cpp|37|undefined reference to `WndProc(HWND__*, unsigned int, unsigned int, long)@16'| ||=== Build finished: 1 errors, 0 warnings (0 minutes, 2 seconds) ===|
Ich habe keine Adminrechte, da ich mich an einem "öffentlichem" Rechner befinde. Könnte es daran liegen?
Hier der/die/das Build log:-------------- Build: Debug in WinApiTut (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -o bin\Debug\WinApiTut.exe obj\Debug\main.o -mwindows obj\Debug\main.o: In function `WinMain@16': H:/BB08/WinApiTut/main.cpp:37: undefined reference to `WndProc(HWND__*, unsigned int, unsigned int, long)@16' collect2.exe: error: ld returned 1 exit status Process terminated with status 1 (0 minutes, 2 seconds) 1 errors, 0 warnings (0 minutes, 2 seconds)
MfG
DragonRaider
-
Du hast eine WndProc deklariert aber keine Funktion definiert!
In anderen Worten: Zeig mir den Code Deiner WndProc! Das kannst Du nicht, denn Dein Code enthält keine.
-
Hi,
Tut mir leid, war ein dummer Fehler. Ich bins gewohnt(gewöhnt?), Funktionen bei der deklaration zu definieren(Macht das so Sinn? Bin mir gerade nicht sicher, wie rum das noch mal war :p ) und nicht erst nen Prototyp zu deklarieren(?) und dann, erst nach der Main-Funktion, zu definieren(?).
MfG
DragonRaiderPS.: Ich klinge wahrscheinlich gerade wie ein blutiger Anfänger
-
DragonRaider schrieb:
Ich bins gewohnt(gewöhnt?), Funktionen bei der deklaration zu definieren(Macht das so Sinn? Bin mir gerade nicht sicher, wie rum das noch mal war :p ) und nicht erst nen Prototyp zu deklarieren(?) und dann, erst nach der Main-Funktion, zu definieren(?).
Wo ist das Problem, das kannst du doch hier genauso machen.
-
Hi,
Wo ist das Problem, das kannst du doch hier genauso machen.
Ja, schon, aber in dem Tutorial, das ich gerade mache, war es halt so gemacht, was mich so verwirrt hatte
. Auch wenn mir dafür gerade kein Grund einfällt
Hiermit ist der Beitrag gelöst - CLOSED
Danke an Alle
MfG
DragonRaider