Prob bei CreateWindowEx
-
Hmm DevC++ zeigt mir bei folgenden Code einen Fehler an:
#include <windows.h> // CallBack Funktion zum Verwalten von Nachrichten LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); // Main Funktion int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wndClass; HWND hWnd; MSG msg; // WindowClassExtended Struktur wndClass.cbSize = sizeof(WNDCLASSEX); wndClass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; wndClass.lpfnWndProc = WinProc; wndClass.cbClsExtra = 0; wndClass.cbWndExtra = 0; wndClass.hInstance = hInstance; wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndClass.hCursor = LoadCursor(NULL, IDC_HAND); wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndClass.lpszMenuName = NULL; wndClass.lpszClassName = "Windowklasse"; wndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // Klasse registrieren if (!RegisterClassEx(&wndClass)) { MessageBox(0, "Klasse konnte nicht registriert werden", "Fehler", MB_OK); return 0; } // Fenster erstellen if (!(hWnd = CreateWindowEx(NULL, "Windowklasse", "Das erste Windows Fenster", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 10, 10, 400, 300, NULL, NULL, hInstance, NULL))) // <-- hier ist der Fehler { MessageBox(0, "Fenster konnte nicht erstellt werden", "Fehler", MB_OK); return(0); } // Hauptschleife while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } // Fertig return 0; } // CallBack Funktion zum auswerten der Nachrichten LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_DESTROY: PostQuitMessage(0); return 0; break; } return DefWindowProc(hWnd, msg, wParam, lParam); }Ich verstehe einfach nicht, warum er Mucken macht bei LPVOID NULL einzusetzen. Das Template von DevC++ funktioniert ja auch mit NULL und lässt sich kompilieren.
mfg olli
-
Was und wo genau meckert er denn?!
-
Vertex: Falsch. Er meckert wegen dem ersten Parameter. (Ex-Style)
-
Da wo "// <-- hier ist der Fehler" steht

C:\Programme\DevCpp\Projects\WinTest\main.cpp In function `int WinMain(HINSTANCE__, HINSTANCE__, CHAR*, int)':
57 C:\Programme\DevCpp\Projects\WinTest\main.cpp [Warning] passing NULL used for non-pointer argument passing 1 of ` HWND__* CreateWindowExA(long unsigned int, const CHAR*, const CHAR*, long
57 C:\Programme\DevCpp\Projects\WinTest\main.cpp [Warning] argument to non-pointer type `long unsigned int' from NULL
möge verstehen wer will
mfg olliEdit: 00000: danke! Aber ist auch hier das selbe Problem

-
Vertex: Wie das selbe Problem? Der Ex-Style ist kein Zeiger. Also sollte man dort 0 verwenden anstatt NULL. Kommt zwar aufs gleiche raus unter C++, aber das ist sauberer und die Warnung ist weg.
-
mach ne 0 hin und gut ist.
schau dir mal die windef.h an, wenn du ein c++ projekt müsste NULL == 0 und ein c projekt NULL == ((void*)0)[edit]
mal wieder zu langsam
-
Ahh danke, ja in VisualC++ scheint da smit NULL zu gehen, aber hast recht 0 ist einleuchtend
