![]() |
[Non-VCL] System kann Datei nicht finden bei RegisterClassEx
Warum bekomme ich bei folgendem Code die Fehlermeldung
Zitat:
Ich wollte in NonVCL einsteigen, hab' mir Luckie's Tut angeschaut, und dann sowas ... :cry: Code grösstenteils direkt ausm Tut übernommen ...
Delphi-Quellcode:
program Project1;
uses Windows, SysUtils, Dialogs; var WindowClass: TWndClassEx; Handle: Word; function WndProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: LParam):lresult; stdcall; begin Result := 0; Result := DefWindowProc(hWnd, uMsg, wParam, lParam); {vereinfacht, da Fehlerunabhängig ... oder ?} end; begin WindowClass.cbSize := SizeOf(TWndClassEx); WindowClass.Style := CS_HREDRAW or CS_VREDRAW; WindowClass.lpfnWndProc := @WndProc; WindowClass.cbClsExtra := 0; WindowClass.cbWndExtra := 0; WindowClass.hbrBackground := COLOR_APPWORKSPACE; WindowClass.lpszMenuName := nil; WindowClass.lpszClassName := 'WndClass'; WindowClass.hIconSm := 0; WindowClass.hInstance := hInstance; WindowClass.hIcon := LoadIcon(hInstance, MAKEINTRESOURCE(100)); WindowClass.hCursor := LoadCursor(0, IDC_ARROW); SetLastError (0); Handle := RegisterClassEx(WindowClass); showmessage (SysErrorMessage (GetLastError)); UnregisterClass (PChar (Handle), HInstance); end. |
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Die Variable Handle ist zu klein. Ich bin mir ziemlich sicher, dass ich sie nicht als WORD deklariert habe, sondern entweder als DWORD oder THandle. Aber ob es das ist, weiß ich nicht.
|
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Nein, das ist es nicht ... Der Fehler tritt sowohl bei LongWord, als auch bei THandle (was nix anderes ist) auf.
In deinen Beispiel verarbeitest du den Rückgabewert von Registerclassex nicht, sondern rufst createwindowex mitt dem klassennamen, statt dem atom auf, aber ob es daran liegt ... :gruebel: |
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Moin Julius,
schau Dir doch mal die Doku zu RegisterClassEx an. Wenn die Funktion fehlschlägt ist der Rückgabewert 0. Da er dies in diesem Falle nicht ist, ist der Wert von GetLastError uninteressant, bzw. er sagt nichts aus. |
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Hi,
Habe gerade das selbe Problem. Versuche eine Klasse zu registrieren, bekomme aber die selbe Meldung wie jfheins. Gibt es da keine Lösung? Muss doch. Mich wunderts vorallem was da für eine Datei gemeint ist o.O Das ganze hat doch nichts mit Dateien zu tun... Gruß Neutral General |
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Welchen Wert bekommst du von RegisterClassEx?
|
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
GetLastError gibt in dem Beispiel oben 2 zurück. Keine Ahnung was das soll. :gruebel:
|
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Ich habe nicht nach GetLastError gefragt.
Zitat:
Zitat:
|
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
RegisterClassEx liefert einen Wert > 0 zurück. zB.: 49558 ;)
|
Re: [Non-VCL] System kann Datei nicht finden bei RegisterCla
Dann ist der Wert von GetLastError unbestimmt, weil die Funktion erfolgreich war.
Delphi-Quellcode:
So wäre es richtig.
Handle := RegisterClassEx(WindowClass);
if Handle = 0 then ShowMessage (SysErrorMessage (GetLastError)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz