Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 3. Feb 2007, 14:09
Zitat von SirThornberry:
Geht es dir jetzt um die Funktion GetUserName oder GetComputerName? Bei GetUserName wird bei mir im Erfolgsfall der Wert von GetLastError nicht geändert.
Eigentlich ändert keine WinAPI-Funktion den Wert von GetLastError.

GetLastError gibt ja den letzten Fehler und nicht den Status des letzten Funktionsaufrufs zurück ... der FehlerCode wird also nur geändert, wenn ein Fehler auftritt.

Wenn man GetLastError auch nach einem erfolgreichem Funktionsaufruf dennoch auslesen will, dann muß man GetLastError auch vor dem Funktionsaufruf aufrufen, da GetLastError den FehlerCode zurücksetzt.

Delphi-Quellcode:
GetLastError; // FehlerCode zurücksetzen
... // irgend'ne WinAPI-Finktion aufrufen
Result := GetLastError;
[add]
oder
Delphi-Quellcode:
SetLastError(0); // FehlerCode zurücksetzen
... // irgend'ne WinAPI-Finktion aufrufen
Result := GetLastError;
$2B or not $2B
  Mit Zitat antworten Zitat