Fehlerbehandlung NT && 2000
-
moinsen,
kann es sein, dass bei einer fehlerbehandlung, unter beiden systemen (NT4.0 und WIN2000) ein jeweils anderer wert zurückgegeben wird?
wenn ja, gibt es dazu irgendwo eine Tabelle?danke fuer eure hilfe
gruss TP
-
Ich denke, der Beitrag ist in der WinAPI besser aufgehoben.
Wegen der Fehlercodes, ja die können bei den Systemen verschieden sein.
Eine Tabelle kann ich Dir leider nicht bieten, die MSDN sollte dir aber weiterhelfen.
-
Es gibt keine Tabelle, in der alle Fehlercodes stehen. (Damit wäre Microsoft wohl überfordert).
Die meisten Fehlercodes sollten aber bei NT und 2k gleich sein.
Nenn mal die konkrete Funktion, bei der du dieses Verhalten beobachtet hast.
-
im moment bei FindFirstFile, FindNextFile und _unlink.
mit GetLastError() bekomm ich den Fehlercode.Gruss TP
-
Jo, und was für Fehler bekommst Du da unterschiedlich?
Gib doch mal mehr Details...
-
MSDN: System Error Codes (manchmal auch ganz nützlich: FormatMessage)
-
moin moin,
@Hepi ... was soll ich dazu sagen? wenn ich mit FindFirstFile() ein Verzeichnis durchsuch und er eine datei oder ordner findet, dann gibt er mir unter 2k mit GetLastError() (bitte nicht festnageln) als fehler 183 zurück, aber unter NT4.0 eine 0, was eigentlich nahe liegen würde.
das schoeneunter 2k ist aber, dass er die funktion fehlerfrei ausgefuehrt hat und eine datei gefunden hat.
ist komisch, ist aber so.@flenders ... danke fuer die tabelle, hatte ehrlich gesagt noch keine zeit selber danach zu suchen. die funktion FormatMessage() kuck ich mir mal an, vielleicht komm ich so dem fehler auf die spur.
ich hab keine ahnung woran das liegen mag, dass die systeme so unterschiedliche fehlercodes zurueckgeben.
ich bring morgen mal die richtigen codes mit, welche mir 2k zurueckgibt, wenn interesse besteht.habt erstmal tausend dank fuer eure hilfe
gruss TP
-
183 - Cannot create a file when that file already exists. - ERROR_ALREADY_EXISTS
Ich nehmen mal an, dass du zuvor irgendwo CreateFile aufrufst
- kann das sein?
-
nein mach ich nicht,
arbeite nur mit FindFirstFile(), FindNextFile() und _unlink.
hab leider gerade keinen code da.
morgen früh stehts hier ...
-
FindFirstFile()/FindNextFile() setzt bei Erfolg nicht den letzten Fehlercode (den man mit GetLastError() abfragt) zurück!
Das heißt, das dieser Fehlercode 183 nicht von FindFirstFile() kommen muß!
Setz mal folgende Zeile direkt vor deinen ersten Aufruf von FindFirstFile():
SetLastError(ERROR_SUCCESS);
Mich hatte dieses Verhalten von FindFirstFile() auch schonmal fast an den Wahnsinn getrieben, weil es eine vollkommen unmögliche Fehlernummer gab... ich fragte aber nur INVALID_HANDLE_VALUE und ERROR_NO_MORE_FILES ab, was dann natürlich nicht funktionierte...
Wie Du selbst schreibst, klappt der Aufruf unter 2K und er findet eine Datei...
-
ja du hattest recht, der fehler kam vom _unlink.
versteh es zwar nicht wirklich warum er da den fehler 183
zurückgibt, aber sei es erstmal drum.
SetLastError() erfüllt seinen zweck und das prog tut jetzt
so wie es soll.danke Hepi ...
gruss TP