CreateWindow gibt Verweis auf ungültigen Speicher zurück?!
-
Hallo zusammen,
HWND ist ja ein Pointer eigentlich.
Bei mir stürtzt das Programm auf einmal ab, sobald ich auf diesen zugreifen will (check auf nullptr und änliches).
Bevor ich mein handle das Ergebnis von CreateWindow erhält ist alles in Ordnung, danach crashts.
Code:// creates class name ostringstream sstream("__my::win::window"); sstream << instance_count++; class_name_ = sstream.str(); // creates window class WNDCLASSA wnd_class{ 0 }; wnd_class.lpfnWndProc = ::window_proc; wnd_class.hInstance = main_args::handle_instance; wnd_class.lpszClassName = class_name_.c_str(); if (!RegisterClassA(&wnd_class)) throw stl::runtime_error("my::win::window::open: unable to open window"); // hier kann ich auf handle_ zugreifen // creates window handle_ = CreateWindowA(class_name_.c_str(), title.c_str(), static_cast<UINT>(style) | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, mode.width, mode.height, nullptr, nullptr, main_args::handle_instance, nullptr); // hier nicht mehr, wieso? if (!handle_) throw stl::runtime_error("my::win::window::open: unable to open window");
-
Nathan schrieb:
// hier nicht mehr, wieso?
GetLastError sagt was?
-
Vielleicht hilft das hier
http://members.gamedev.net/sicrane/articles/main.cpp
stehen ein paar gute Kommentare drin
-
Wird der Stack zerstört/überschrieben?
Schau Dir mal den Stack in einem Memory Window an.
-
GetLastError() sagt 0.
Debugger meldet Segmentation Fault.
Memory Dump kann keine Informationen über die Adresse des Handles herausfinden.
Beispiel-Code war hilfreich, werde demnächst die WNDCLASS static machen.
-
Weiß denn irgendeiner, woran das so grob liegen könnte?
Das seltsame ist, ich habe lediglich in der Window-Class zwei Funktionen hinzugefügt. Diese werden aber noch nicht einmal aufgerufen! Vorher funktionierte es fehlerfrei, mit diesen zwei Funktionen nicht mehr. Versuche mal, die wieder rauszunehmen.
-
An anderen Rechner klappt es ohne Probleme.
Nur bei mir nicht.
Woran kann es liegen? Kann ich irgendetwas bei Windows zerstört haben?Edit: Falscher Alarm, an anderen klappt es auch nicht.
-
Wenn Du ein bischen mehr von Deinem Code postest kann Dir vermutlich eher jemand helfen..
Wo kommt handle_ her,
wie sehen die Create-Methoden von Deinem Fenster aus..
..wie siehts bei Dir mit "this" aus..