Du solltest GetLastError nur dann aufrufen, wenn ein Fehler von einer Funktion aufgetreten ist, die den letzten Fehler auch setzt, denn ansonsten ist der Wert von GetLastError unbestimmt:
Zitat von
RegisterClassEx Function:
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Also so sollte das bei dir aussehen:
Delphi-Quellcode:
function InitWindowClass: DWORD;
begin
MyNoVCLClass.style := 0;
MyNoVCLClass.cbSize := SizeOf(TWndClassEx);
MyNoVCLClass.lpfnWndProc:= @WndProc;
MyNoVCLClass.cbClsExtra:= 0;
MyNoVCLClass.cbWndExtra:= 0;
MyNoVCLClass.hInstance:= HInstance;
MyNoVCLClass.hIcon:= 0;
MyNoVCLClass.hCursor:= LoadCursor(0, IDC_ARROW);
MyNoVCLClass.hbrBackground:= COLOR_WINDOW;
MyNoVCLClass.lpszMenuName:= nil;
MyNoVCLClass.lpszClassName:= 'MyTest';
MyNoVCLClass.hIconSm:= 0;
Result := RegisterClassEx(MyNoVCLClass);
end;
// ...;
begin
if InitWindowclass = 0 then
Writeln(getLastError);
// ...;