Fehlermeldung bei Programm "einfaches Fenster"
-
Hallo!
Ich habe neulich mit der c-Programmierung angefangen und mir jetzt ein Tutorial zur Win32 API angesehen. Wenn ich versuche, das dort gelistete Programm zu Compilieren
(Dev-C++), erhalte ich folgende Fehlermeldung:
Compiler: Default compiler
Fenster.c: In functionWinMain': Fenster.c:69: warning: passing arg 1 ofCreateWindowExA' makes integer from pointer without a castgcc.exe Fenster.o -o "Win32Fenster.exe" -L"lib"
Fenster.o(.text+0x6e):Fenster.c: undefined reference to `GetStockObject@4'
collect2: ld returned 1 exit statusmake.exe: *** [Win32Fenster.exe] Error 1
Ausführung beendet
Hier der Quellcode des Programms:
#include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LPCSTR lpszAppName = "AppName"; LPCSTR lpszTitle = "Meine erste Applikation"; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HWND hWnd; MSG msg; WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); 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 = lpszAppName; wc.lpszMenuName = lpszAppName; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if( RegisterClassEx(&wc) == 0) return 0; hWnd = CreateWindowEx(NULL, lpszAppName, lpszTitle, WS_OVERLAPPEDWINDOW, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if( hWnd == NULL) return 0; ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT umsg, WPARAM wParam, LPARAM lParam) { switch (umsg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, umsg, wParam, lParam); }Ich wäre euch sehr dankbar, wenn ihr mir helfen könnt.
-
Du hast wahrscheinlich vergessen gdi32.lib zu linken ...
-
Danke für deine Antwort.
Nur weiß ich nicht wie ich das machen soll. Kann mir da jemand weiterhelfen?
(Bin halt noch ein Anfänger)BigC
-
BigC schrieb:
... gcc.exe Fenster.o -o "Win32Fenster.exe" -L"lib"...wahrscheinlich statt -L"lib" -L"gdi32.lib"
-
Hiho,
ich habe auf meiner Seite ein Tutorial zu genau deinem Problem veröffentlicht
Zu finden unter "Tutorials". Link siehe meine Signatur !wahrscheinlich statt -L"lib" -L"gdi32.lib"
Das geht bei einer IDE auch viel einfacher

MfG mikey.
-
Danke für das Tutorial.

Alleine hätt ich das wahrscheinlich nie rausgekriegt. Das Programm funktioniert jetzt einwandfrei und ich kann mit den Tutorial fortfahren. Wenn mal wieder was nicht geht, dann weiß ich ja an wen ich mich wenden kann...mfg
BigC