Frage zur bedeutung von einem Error Code
-
Abend, ich hab ein Programm geschrieben welches eine Datei von meinem FTP Server entfernt.
FtpDeleteFile gibt mir den Error Code 997 zurück (meine Datei wird aber vom Server entfernt).
Laut MSDN steht der Error code 997 für:
Overlapped I/O operation is in progresshttp://msdn.microsoft.com/en-us/library/windows/desktop/ms681388(v=vs.85).aspx
Überlapende Eingabe/Ausgabe Operation ist im Progress. Damit kann ich irgendwie nix anfangen.
Die Meldung bekomme ich sogar ausgeben wenn die Datei schon gar nicht mehr auf dem FTP Server existiert und ich versuche sie trotzdem nochmal zu entfernen.
-
Der typische Fehler: Du wertest GetLastError aus obwohl die Funktion gar nicht fehlgeschlagen ist.
-
Interessant wär noch, wie du die Datei löschst. Wenn du den entsprechenden Fehlercode bekommst, hast du wahrscheinlich auch eine Overlapped I/O Operation am Laufen.
-
Hiermal meine Funktionen:
void test_function() { hinternet = InternetOpen(0, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_ASYNC ); hInternet = InternetConnect( hInternet, "servername" , INTERNET_DEFAULT_FTP_PORT, "username", "passwort", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, NULL ); } int DeleteFile ( LPCTSTR filename ) { boolean = FtpDeleteFile( hInternet, filename ); if( boolean == false ) { return GetLastError(); } return 0; }
-
Naja, im Grunde heißt es, es ist eine asynchrone Operation, die FtpDeleteFile Funktion kehrt aber sofort zurück. Und an der Stelle ist wohl noch nicht bekannt, ob die Operation klappen wird, also wird dir signalisiert, dass die Funktion noch ausgeführt wird. Aber ich kenn mich nicht im Detail mit diesen WinInet Funktionen aus.
-
INTERNET_FLAG_ASYNC
-
Ist das INTERNET_FLAG_ASYNC in meine Code falsch?
-
Probiers mal ohne, ich hab das Flag völlig übersehen.
-
ich würde mich echt nicht wundern wenn DerDateiVernichter solange wartest bis ihm das hier jemand bestätigt bevor er es selbst mal mit weglassen versucht
-
So funktioniert es auch nicht.
hInternet = InternetOpen(0, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL );
Wie krieg ich den nun raus was ich da falsch mache?
Ich sitzt da jetzt schon Stundenlang ran und hab gegoogelt wie ein wilder aber ka was da bei mir falsch ist.
-
@ 000000
ich hab schon so vieles ausprobiert aber nichts funktioniert.
Das hatte ich glaub ich vorhin vor 2 Stunden schon mal weggelassen und dann funktionierte es auch nicht. -.-
-
WTF jetzt hab ich es nochmal probiert und jetzt funktioniert es.
Durch das ganze rum geteste und alles hatte ich bei meinem test Code irgendeinen Fehler reingehauen. Jetzt hab ich die Funktionen nochmal direkt aus meiner Klasse aufgerufen und jetzt geht es.
SO Feierabend ich kann mich auf gar nix mehr konzentrieren.
Aber thx an alle für die Hilfe.