S
Ich habe eine DLL welche ein Fenster zeichnet, diese wird von ner .exe geladen und das Fenster wird gezeichnet und es funktioniert _alles_, aber wenn ich das Fenster schließe erhalte ich die Nachricht "RegisterClassEx fehlgeschlagen"
Die Meldung müsste, aber zu beginn kommen und nicht erst nach beenden des Fensters, da ich ja das Programm mit std::exit (1) direkt danach beende
Der Code sieht so aus:
// Einrichten des Fensters
appName = "Settings";
//WNDCLASSEX Struktur füllen
wndclassex.cbSize = sizeof(WNDCLASSEX);
wndclassex.style = CS_HREDRAW | CS_VREDRAW;
wndclassex.lpfnWndProc = NSFrame::WndProc;
wndclassex.cbClsExtra = 0;
wndclassex.cbWndExtra = 0;
wndclassex.hInstance = Singleton::getInstance().getHinst ();
wndclassex.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclassex.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wndclassex.lpszMenuName = NULL;
wndclassex.lpszClassName = appName.c_str ();
wndclassex.hIconSm = wndclassex.hIcon;
//Das Fenster registrieren
if (!RegisterClassEx (&wndclassex))
{
//Wenn das Fenster nicht registiert werden kann, wird die Anwendung beendet
#ifdef _DEBUG
MessageBox (0, "RegisterClassEx fehlgeschlagen", "Error", MB_OK);
#endif
std::exit (1);
}
//Ein Fenster erzeugen
hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, // erweiterter Fensterstil
appName.c_str (), // Name der Fensterklasse
appName.c_str (), // Fenstertitel
WS_OVERLAPPEDWINDOW, // Fensterstil
350, // X-Position des Fensters .... CW_USEDEFAULT für Default
300, // Y-Position des Fensters
180, // Fensterbreite
120, // Fensterhöhe
NULL, // übergeordnetes Fenster
NULL, // Menü
Singleton::getInstance().getHinst (), // Programm-Kopiezähler (Programm-ID)
NULL); // zusätzliche Parameter
if (hwnd == NULL)
{
//Fenster erzeugen fehlgeschlangen, die Anwendung wird beendet
#ifdef _DEBUG
MessageBox (0, "CreateWindowEx fehlgeschlagen", "Error", MB_OK);
#endif
std::exit (1);
}
ShowWindow (hwnd, SW_SHOW);
UpdateWindow (hwnd);
Der gleiche Code direkt in der .exe funktioniert jedoch ohne Fehler.
Ich habe mir mit GetLastError mal den Fehler ausgegeben und da steht "Der angegebene Ressourcentyp wurde nicht in der Image-Datei gefunden.", was bedeutet das denn?
Edit:
Hat sich erledigt, habe den Fehler: Der Ctor der Klasse wird 2mal aufgerufen (und da erzeug ich das Fenster).