Linker Error bei Fenster-Erstellung
-
Hej,
ich fange gerade an, die WINAPI zu lernen und teste mich an einem Fenster. Hier der Code, falls benötigt:#define STRICT #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char szAppName[] = "Ein eigenes Fenster"; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HWND hWnd; MSG msg; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hIcon = LoadIcon(NULL,IDI_APPLICATION); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszClassName = szAppName; wc.lpszMenuName = NULL; RegisterClass(&wc); hWnd = CreateWindow(szAppName, "Titelleiste", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); 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) { switch (message) { case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, message, wParam, lParam); }Wenn ich mit meinem Compiler (Bloodshed Dev-C++ 4.9.9.2) das kompilieren will, meldet er nur
[Linker error] undefined reference to `GetStockObject@4' ld returned 1 exit statusWas kann ich da tun?
-
mit gdi32.lib linken
-
Tschuldige, wenn ich mich etwas dämlich anstelle, etwa so?
#include "C:/Programme/Microsoft SDKs/Windows/v6.0A/Lib/Gdi32.Lib"Ich weiß nicht so genau, wie man "linkt". Und diese Datei find ich auch nur in diesem Ordner.
-
#pragma comment(lib, "gdi32.lib")

-
Und das ergibt wieder
[Linker error] undefined reference to `GetStockObject@4' ld returned 1 exit status
Ich hab jetzt auch herrausgefunden, dass ich libgdi32.a und nicht .lib benötige, die ist auch im Lib-Verzeichnis von Dev-Cpp, aber leider bleibt der Fehler.
-
Ad aCTa schrieb:
Und das ergibt wieder
[Linker error] undefined reference to `GetStockObject@4' ld returned 1 exit status
Ich hab jetzt auch herrausgefunden, dass ich gdi32.a und nicht .lib benötige, die ist auch im Lib-Verzeichnis von Dev-Cpp, aber leider bleibt der Fehler.
Projekt => Projekt Einstellungen => Linker Parameter (oder so)
und da -lgdi32 oder gdi32.a eintragen
-
Ah, danke! Darauf wär' ich nie gekommen.