Das stimmt so weit auch, denn nicht "RaiseLastOSError" löst die
Exception aus, sondern das passiert ja eh erst später, weiter drinnen.
Delphi-Quellcode:
procedure RaiseLastOSError;
begin
RaiseLastOSError(GetLastError);
end;
procedure RaiseLastOSError(LastError: Integer);
var
Error: EOSError;
begin
if LastError <> 0 then
Error := EOSError.CreateResFmt(@SOSError, [LastError,
SysErrorMessage(LastError)])
else
Error := EOSError.CreateRes(@SUnkOSError);
Error.ErrorCode := LastError;
raise Error; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
end;
Mit DebugDCUs bis zum Raise, schauen was die CPU-Ansicht im Delphi sagt und das dann mit madExcept vergleichen.