Forum: Win32/Win64 API (native code)
Delphi
by Pixel,
21. Sep 2016
Ja du hast im Prinzip das wiederholt was ich schong gesagt hatte:
In dem Fall bringt SetLastError(0) LOGISCHERWEISE rein gar nichts. Das ist das gleiche wie bei meinem Beispiel wo ich erst WriteFile() und dann DeleteFile() aufrufe.
Es macht keinen Sinn SetLastError auf 0 zu setzen wenn man daraufhin mehrere Funktionen called und am Ende dann den LastError prüft. Jeder DeleteFile call...
Forum: Win32/Win64 API (native code)
Delphi
by Pixel,
21. Sep 2016
FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH
Ich glaube du hast GetLasterror/SetLastError nicht so ganz verstanden.
SetLastError(0) setzt nur den Fehler auf 0 (ERROR_SUCCESS). Das ist beim Debugging einer Fehlerbehandlung empfehlenswert und manchmal sogar notwendig, denn sonst kann man nicht zu 100% sagen ob der Fehler dem nächsten Befehl zugeordet ist.
...
Forum: Win32/Win64 API (native code)
Delphi
by Pixel,
31. Aug 2016
Also um das was Luckie gefragt hat nochmals zu verdeutlichen:
procedure checkErrorDeleteFile(const path : string);
begin
SetLastError(0);
DeleteFile(path);
ShowMessage(IntToStr(GetLastError));
end;
Anschließend kannst du hier nach dem Errorcode der in der Messagebox angezeigt wurde suchen, dann weißt du was das Problem ist in der Regel.