Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: Fehler bei Dateigröße über HTTP (WinINet)
14. Nov 2013, 09:40
Jupp, genau das heißt es.
"Ursprünglich" wird SetLastError nur verwendet, wenn man einen Fehler rausgeben will, aber wenn es erfolgreich war, ist das ja nicht nötig.
GetLastError ändert sich zwar (manchmal) auch bei Funktionen, die erfolgreich waren.
1: z.B. durch den Aufruf von SetLastError(0);
(ich hab schon gesehn, daß Einige diesen Aufruf vor Funktionen schreiben und danach dann via GetLastError prüfen, aber das kann auch schief gehn, siehe #3)
2: wenn eine Funktion intern andere Funktionen aufruft, die einen Fehler via GetLastError liefern, dann steht in GetLastError natürlich auch deren Fehlercode drin, selbst wenn die Funtion erfolgreich waren
3: wenn eine Funktion kein SetLastError aufruft, z.B. weil die Funktion erfolgreich war, dann steht natürlich noch der Wert eines vorherrigen Aufrufs drin.
Darum steht da ja auch immer, wie man einen Fehler erkennt (hier INVALID_SET_FILE_POINTER) und wie man detailiertere Informationen bekommt (hier GetLastError).
Bei ShellExecute steht z.B. der Fehlercode nicht im GetLastError, sondern im Result und auf einen Fehler prüft man da mit <=32.
$2B or not $2B
|