RegisterClassEx schlägt in DLL fehl
-
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).