Einzelnen Beitrag anzeigen

Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#6
  Alt 23. Jun 2002, 11:15
Hi Leute,

der Fehler kommt wohl davon, dass FtpGetCurrentDirecory immer MAX_PATH Zeichen zurürckgibt und dass das die Größe von szBuffer überschreitet. Deshalb habe ich den Code so abgeändert:

Code:
procedure GetCurDir(handle: Cardinal);
const
  LEN_CUR_DIR = 23; // Length('aktuelles Verzeichnis: ')
var
  szBuffer: array[0..MAX_PATH - 1 + LEN_CUR_DIR] of Char;
  szDir: PChar;
  lenDir: DWORD;
begin
  lenDir := MAX_PATH;
  GetMem(szDir, lenDir);
  FTPGetCurrentDirectory(hFTPSession, szDir, lenDir);
//  MessageBox(0, szDir, 'GetCurDir', 64);
  lstrcpy(szBuffer, 'aktuelles Verzeichnis: ');
  lstrcat(szBuffer, szDir);
  SendMessage(GetDlgItem(handle, IDC_LSTMSG), LB_ADDSTRING, 0, Integer(@szBuffer));
  FreeMem(szDir);
end;
Jetzt aber ist szDir = ''. Nur wenn man vorher im Debug-Modus sich szDir ansieht, oder die MessageBox oben einbaut, dann erhlält man zwar zuerst szDir='', aber dann einen Befehl später den Verzeichnisort...

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat