Es könnte sein, dass der Wert von GetLastError undefiniert ist, wenn die letzte
API Funktion erfolgreich war. AHm, aber das kann auch nicht sein, denn dann wäre der Wert von GetLastError ERROR_SUCCESS. Jedenfalls besteht kein Grund GetLastError zu püfen, wenn die Funktion erfolgreich war.
Eventuell sollte man es so machen:
Delphi-Quellcode:
function ComputerName(var CompName: String): DWORD;
var
len: Cardinal;
begin
SetLength(CompName, MAX_COMPUTERNAME_LENGTH);
if GetComputerName(PChar(CompName), len) then
begin
SetLength(CompName, len);
result := ERROR_SUCCESS;
end
else
result := GetLastError;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ret: DWORD;
s: String;
begin
ret := ComputerName(s);
if ret = 0 then
ShowMessage(s)
else
ShowMessage(SysErrorMessage(ret));
end;