Hola,
Es curioso, ¿no?
Código Delphi
[-]
function Win32Check(RetVal: BOOL): BOOL;
begin
if not RetVal then RaiseLastOSError;
Result := RetVal;
end;
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;
O sea. Si la función del API retorna "false" (esto usando "Win32Check"), levantamos una excepción con el último error del sistema. Cuando hacemos esto miramos, precisamente, el valor de "GetLastError", y creamos una excepción "EOSError" con el mensaje que consigamos de "SysErrorMessage"...
Y si "GetLastError" retorna un bonito cero... creamos la excepción con el mensaje "Error desconocido"...
¿Sólo a mí me parece curioso, luego de haber seguido este Hilo desde un principio?
Ahora, hasta ahí llego... me parece curioso, me llama la atención, pero, tampoco sé decir exactamente porqué...
