AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi DeleteFile und die Datei ist immer noch da
Thema durchsuchen
Ansicht
Themen-Optionen

DeleteFile und die Datei ist immer noch da

Ein Thema von fs999 · begonnen am 30. Aug 2016 · letzter Beitrag vom 22. Sep 2016
 
Pixel

Registriert seit: 23. Aug 2016
26 Beiträge
 
#14

AW: DeleteFile und die Datei ist immer noch da

  Alt 21. Sep 2016, 15:41
Ja du hast im Prinzip das wiederholt was ich schong gesagt hatte:

Zitat:
SetLastError(0);
DeleteFile(...);
DeleteFile(...);
DeleteFile(...);
DeleteFile(...);
if GetLastError <> 0 then
ZeigeFehler(GetLastError);
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 ruft schließlich SetLastError() auf und somit ist das Ergebnis von GetLastError der Fehlercode des letzten calls von DeleteFile.

Fazit: Praktisch ist es unnötig gewesen von mir SetLastError(0) aufzurufen, da man nur eine einzelne Funktion aufruft die intern SetLasterror() called und somit LastError sowieso auf diese bezogen ist. Deine Aussage ist dennoch etwas widersprüchlich.

Zitat:
GetLastError gibt per Definition den letzten Fehler zurück,
aber da ständig irgenwelche Trottel mit SetLastError rumpfuschen und solche arbeiten auch bei Microsoft selber, stimmt das eben nicht immer.
GetLastError gibt per Definition zwar den letzten Fehler zurück, nur ist 0 "ERROR_SUCCESS" eben auch als Fehler definiert, wie du ja mittlerweile auch erkannt hast.

Die prüfung mit "is not DeleteFile" halte ich daher für einen nicht notwendigen Indikator zum Aufruf von GetLastError da SetLastError eben auf 0 gesetzt wird wenn die Funktion Erfolg hatte.

OP wollte schließlich den Fehler von DeleteFile und eine Ausgabe, die bekommt er mit meinem Code immer und wenn 0 zurückkommt, dann weiß er dass alles gut gegangen ist.
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz