Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: GetUserName -> Result=True aber GetLastError=203

  Alt 3. Feb 2007, 17:26
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat