"ungültiger zugriff auf speicherbereich"
-
schreib anstatt
LPWNDCLASSEX wndClassEx = NULL;mal
LPWNDCLASSEX wndClassEx = new WNDCLASSEX;und am Ende des Progs/funktion
delete wndClassEx
-
WNDCLASSEX wndClassEx; // [...] GetClassInfoEx(hInstance, szClassName, &wndClassEx);
-
erstmal danke, ...
jetzt bekomme ich nur noch die meldung Error 1411: Klasse ist nicht vorhanden Woran könnte das liegen? Handle, HINSTANCE und Klassenname habe ich erfolgreich bekommen....
An "gute Frage", logge dich bitte ein, wenn du etwas zu sagen hast! Wir behandeln WinApi gerade im Studium und ich muss bis Dienstag was gebastelt haben.
-
shareholder schrieb:
jetzt bekomme ich nur noch die meldung Error 1411: Klasse ist nicht vorhanden Woran könnte das liegen? Handle, HINSTANCE und Klassenname habe ich erfolgreich bekommen....
Bei wessen Code?
-
beiden ;-))
-
Komisch. Bei LPWNDCLASSEX hast du keinen Fehler bekommen? Hast du windows.h eingebunden?
-
doch doch! bei lpwndclassex kam ein fehler.
ich dachte du meinst deine variante und die von Horst2.

hast du eine idee? ich kann mir echt nix vorstellen.

edit: ja, klar windows.h ist eingebunden

-
hast du dich vielleicht verschrieben? kann es mir auch nicht erklären
-
den code, den ich bereits habe:
BOOL ShowExtendedStyles(HWND hwndDialog, HWND hwndFoundWindow) { HINSTANCE hInstance = NULL; WNDCLASSEX wndClassEx; char szClassName[255]; // Puffer des Klassennamen, nullterminiert char szOutput[255]; // Ausgabe // Retrieves a handle to the application instance. hInstance = (HINSTANCE)GetWindowLong(hwndFoundWindow, GWL_HINSTANCE); // Retrieves the name of the class to which the specified window belongs. int ClassNameNumChars = GetClassName(hwndFoundWindow, szClassName, sizeof(szClassName)-1); // Klassen-Informationen anfordern: if(GetClassInfoEx(hInstance, szClassName, &wndClassEx) == 0) { ErrorExit(); } else { //do something } // return value if SUCCESS return true; }@horst2 : dein new WNDCLASSEX funkt genau wie WNDCLASSEX wndClassEx;!
-
shareholder schrieb:
@horst2 : dein new WNDCLASSEX funkt genau wie WNDCLASSEX wndClassEx;!
schon klar

kannst du noch mal die genaue Fehlermeldung posten
-
bei mir spuckt er keinen Fehler aus.
Mit was arbeitest du?
-
void ErrorExit() { TCHAR szBuf[80]; LPVOID lpMsgBuf; DWORD dw = GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); wsprintf(szBuf, "Error %d: %s", dw, lpMsgBuf); MessageBox(NULL, szBuf, "Debugging Error", MB_OK); LocalFree(lpMsgBuf); }Error 1411: Klasse ist nicht vorhanden
-
Ich arbeite mit Microsoft Visual Studio.
Wird aber damit nix zu tun haben. *g*
-
mmmh, hab ich auch. was hast du für ein projekt?
unterstützt du mfc?bei geht's
-
Und bei welcher Zeile kommt der Fehler genau?
-
Ist das ein Fenster einer fremden Anwendung?
-
Wenn ja benutz GetClassLongPtr.
-
Benutze Win32
HINSTANCE hInstance = NULL; WNDCLASSEX wndClassEx; char szClassName[255]; // Puffer des Klassennamen, nullterminiert // char szOutput[255]; // Ausgabe HWND hwndFoundWindow = FindWindow("MineSweeper", "MineSweeper"); if(hwndFoundWindow == NULL) MessageBox(NULL, "Fenster wurde nicht gefunden", "blub", MB_OK); // Retrieves a handle to the application instance. hInstance = (HINSTANCE)GetWindowLong(hwndFoundWindow, GWL_HINSTANCE); // Retrieves the name of the class to which the specified window belongs. int ClassNameNumChars = GetClassName(hwndFoundWindow, szClassName, sizeof(szClassName)-1); // Klassen-Informationen anfordern: if(GetClassInfoEx(hInstance, szClassName, &wndClassEx) == 0) { ErrorExit(); } else { //do something MessageBox(NULL, "Alley OKAY :=)", "blub", MB_OK); }Funktioniert der Code bei Euch, wenn ihr die Anwendung MineSweeper geöffnet habt?
-
ok, also ein fenster eines fremden prozesses?!
-
Ja, steht ja da!
