Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9
  Alt 23. Jun 2002, 14:42
Ich glaube ich hab den Fehler. Du übergibst bei InternetOpen das Flag INTERNET_FLAG_ASYNC, was soviel heißt, dass du eine Anforderung schickst, diese aber nicht gleich zurückgeliefert haben willst. Somit kehrt FtpGetCurrentDirectory sofort zurück und hat nichts verändert, merkt sich aber die Speicheradresse, wo das Resultat, der Verzeichnisname, hingeschrieben werden soll. Dein Programm gibt diesen Speicherbereich jedoch wieder frei, wenn FtpGetCurrentDirectory zurückgekehrt ist, und deswegen versucht die WinInet Funktion in einen nicht mehr gültigen Speicherbereich zu schreiben, wenn der Request vom Server beantwortet ist.

Als Lösung kannst du einfach das Flag INTERNET_FLAG_ASYNC beim Aufruf von InternetOpen weg lassen. Dann funktioniert es. Hab es ausprobiert.
  Mit Zitat antworten Zitat