Zugriffsnummer ist nicht definiert (CreateWindow)
-
Hallo,
ich habe folgendes Problem.
Ich registriere eine Fensterklasse mit RegisterClass, was auch fehlerfrei funktioniert.
Wenn ich nun danach die Funktion CreateWindow aufrufe bekomme ich NULL zurück und die Fehlermeldung Zugriffsnummer ist nicht definiert.
Kann mir einer weiterhelfen ?
Hier mein Code:HWND mainhwnd; const char szAppName[] = "MyProgWindow"; //Funktion wird aus der Main-Funktion aufgerufen BOOL SetupInterface(HINSTANCE hinst, LPSTR lpCmdLine) { BOOL Ok; int a; DWORD lerror; char lpBuffer[256]; char WindowName[30]; WNDCLASS wc; strcpy(WindowName,"Mein Programm wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hInstance = g_hinst; wc.lpfnWndProc = WndProc; wc.lpszClassName = szAppName; wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; a= RegisterClass(&wc); if (a!=0) { mainhwnd=CreateWindow (appName, WindowName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinst, NULL); if (mainhwnd) { ShowWindow(mainhwnd,SW_SHOW); Ok=TRUE; } else { Ok=FALSE; lerror=GetLastError(); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,lerror,0,lpBuffer,255,NULL); MessageBox(NULL,lpBuffer,lpBuffer,MB_OK); } } else Ok=FALSE; return Ok; }Gruss Daniel666
-
Beim Registrieren der Fensterklasse verwendest du szAppName, nachher zum Erzeugen des Fensters aber appName

-
Daniel666 schrieb:
char WindowName[30]; WNDCLASS wc; // läuft folgende Zeile fehlerlos durch den Compiler? strcpy(WindowName,"Mein Programm // läuft obige Zeile fehlerlos durch den Compiler? wc.cbClsExtra = 0; wc.cbWndExtra = 0;Fehlt da nicht was? Oder nur ein Tippfehler beim eintragen ins Forum?
-
Sorry...das sind nur Tippfehler...
-
Auch das mit szAppName und appName?
Und ist g_hinst auch gültig bzw. hast du es mal mit dem übergebenen hinst stattdessen versucht?
-
Alles schon ausprobiert.
Wenn ich eine bereits existierende Fensterklasse, z.B. BUTTON nehme funktioniert es.
Dann weiss ich aber nicht, wie diesem Fenster die Botschaften-Prozedur zuweisen soll.
-
Habe den Fehler gefunden:
Schuld war die Ereignisbehandlung für WM_CREATE.
Falscher Rückgabewert...