Access Violation bei CreateWindow
-
Der folgende Codeabschnitt hat bis heute morgen perfekt funktioniert. Aber aufmal (ohne das ich etwas geändert habe!!) Stürtzt das Programm beim CreateWindow ab
char szClassName[ ] = "TexT"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; MSG messages; WNDCLASSEX wincl; //MAIN WND wincl.hInstance = hThisInstance; wincl.lpszClassName= szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof(WNDCLASSEX); wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor(NULL, IDC_ARROW); wincl.lpszMenuName = "MAINMENU"; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; if(!RegisterClassEx (&wincl)) { MessageBox(NULL,"Fensterklasse konnte nicht Registriert werden","Fehler",MB_OK|MB_ICONSTOP); return 0; } /**/MessageBox(NULL,"1","",MB_OK); //Diese Messagebox wird noch aufgerufen hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, szClassName, "TexT", WS_OVERLAPPEDWINDOW, 0, 0, 800, 550, NULL, NULL, hThisInstance, NULL); /**/MessageBox(NULL,"2","",MB_OK); //Diese leider nicht mehr :(Wenn ich auf Debug gehe, zeigt mir VisualStudio folgende Meldung:
"Unbehandelte Ausnahme in TexT.exe: 0xC0000005: Access Violation"Aber wo?? und Warum jetzt erst??
---
Liegt es evtl an der IDE, das mein (funktioniernder) code nicht funktioniert??
-
HI !
hab mir dein Code mal Kopiert und bei mir werden beide Message Boxes angezeigt.
Es kann gut sein das deine IDE spinnt (war bei mir auch so konnte ne zeit lang keine Exe mehr builden).
Mach villeicht mal die Funktion Bereinigen :
Im Menü Build auf Clean.
und erstell villeicht mal beide (Debug und Release).
__stdcall*
-
Hast du denn eine Menüressource mit String Identifier, die "MAINMENU" heißt? An welcher Stelle im Code tritt denn deine Access Violation auf? Direkt bei CreateWindows also nach der ersten Messagebox?
-
1. Ja das Menü existiert
2. Die erste MessageBox wird angezeigt, nachdem ich auf "OK" geklickt hab, stürtzt es ab
3. Ich benutze DEV-CPPDanke, das du es mal getestet hats, __stdcall*. Jetzt weiß ich zumindest, wo ich suchen muss.
-
__stdcall* schrieb:
Es kann gut sein das deine IDE spinnt (war bei mir auch so konnte ne zeit lang keine Exe mehr builden).
Wahrscheinlicher ist allerdings, dass RedEagle irgendwas Böses in WM_CREATE macht.