Kann mir jemand helfen?
-
Hallo,
hab gerade ein paar Tuts zum Thema WinApi durchgeackert, dann tippte ich ein Beispiel ab, und es trat ein Fehler auf....
Kann mir jemand sagen was an diesem Code falsch ist?:#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); //Deklaration der Windows-Nachrichten-Prozedur int WINAPI WinMain (HINSTANCE hI, HINSTANCE hPrI, PSTR szCmdLine, int iCmdShow) { char szName[] = "Fensterklasse"; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; // CS = "class style" wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hI; wc.hIcon = LoadIcon (NULL, IDI_WINLOGO); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = szName; RegisterClass (&wc); HWND hwnd = CreateWindow (szName, "", WS_SYSMENU | WS_THICKFRAME, 0, 0, 200, 100, NULL, NULL, hI, NULL); ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); // Nachrichten-Schleife MSG msg; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } // Windows-Nachrichten-Prozedur LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch (message) { case WM_PAINT: hdc = BeginPaint (hwnd, &ps); TextOut (hdc, 20, 20, "Ich bin ein Fenster.", 20); EndPaint (hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc (hwnd, message, wParam, lParam); }P.S.: Den Code habe ich von http://www.henkessoft.de!
-
Wenn du uns sagst was du für eine Fehlermeldung bekommst, damit wir das nicht alles durchlesen müssen...
-
(D)Evil schrieb:
Wenn du uns sagst was du für eine Fehlermeldung bekommst, damit wir das nicht alles durchlesen müssen...
Ich tippe mal ins Grüne. Er verwendet Visual C++ 2005 Express Edition und er bekommt Probleme weil der Unicode haben will

Edit: In diesem Fall verwendest du, ZeitZumFaken, am besten das TEXT() Makro für deine Strings und TCHAR anstatt char das Problem sollte gegessen sein.
BR
Vinzenz
-
Sry, wusste ich hab was vergessen^^
Da die Fehlermeldung;[Linker error] undefined reference to
GetStockObject@4' [Linker error] undefined reference toTextOutA@20'
ld returned 1 exit statusNach längerenheruprobieren fiel mir auf, wenn ich diesen Teil:
wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); so ändere: wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);und diesen Teil: TextOut (hdc, 20, 20, "Ich bin ein Fenster.", 20);
komplett weglasse funktionierts, doch wie kann ich in dem Fenster einen Text ausgeben ohne TextOut?Edit:
Ich vewende den Compiler Dev-C++ von Bloodshed!
-
ZeitZumFaken schrieb:
[...]
wie kann ich in dem Fenster einen Text ausgeben ohne TextOut?DrawText(Ex)
ZeitZumFaken schrieb:
Ich vewende den Compiler Dev-C++ von Bloodshed!
Ich würd dir VC++ 2005 Express Edition empfehlen. Da sind die Header/Libs komplett
.
-
guck mal in der MSDN da steht zu welchen Funktionen du welche Librarys brauchst...