Конференция "Сети" » Вопрос по FtpGetFile
 
  • SortoVaritu © (22.06.09 11:24) [40]
    И что сие может озночать
  • brother © (22.06.09 11:38) [41]
    много чего...
  • SortoVaritu © (22.06.09 11:50) [42]
    И как быть
  • Сергей М. © (22.06.09 11:53) [43]

    > как быть


    Адрес запоминать)

    И внимательно изучать прототип ф-ции.
  • SortoVaritu © (22.06.09 11:58) [44]
    а что не так с прототипом функции?
  • Сергей М. © (22.06.09 11:59) [45]
    А я откуда знаю, что у тебя там с ним не так ?
    Мне отсюда не видать)
  • brother © (22.06.09 12:13) [46]
    ну стандартно: ошибка в 17 строке
  • SortoVaritu © (22.06.09 12:14) [47]
    FtpCommand(hFtp,true,FTP_TRANSFER_TYPE_BINARY,
      PChar('RETR '+MyFile),0,hFile)
    Функция вызывается вызывается следующим образом

    function FtpCommand(
       hConnect: HINTERNET;
       fExpectResponse: BOOL;
       dwFlags: DWORD;
       lpszCommand: PChar;
       dwContext: DWORD;
       var phFtpCommand: PHINTERNET): BOOL;
       stdcall; external 'wininet.dll' name 'FtpCommandA';

    Вроде бы как все сделано верно.
  • brother © (22.06.09 12:17) [48]
    > FtpCommand(hFtp,true,FTP_TRANSFER_TYPE_BINARY,
    >  PChar('RETR '+MyFile),0,hFile)
    > Функция вызывается вызывается следующим образом
    >
    > function FtpCommand(
    >   hConnect: HINTERNET;
    >   fExpectResponse: BOOL;
    >   dwFlags: DWORD;
    >   lpszCommand: PChar;
    >   dwContext: DWORD;
    >   var phFtpCommand: PHINTERNET): BOOL;
    >   stdcall; external 'wininet.dll' name 'FtpCommandA';

    О_о ?
  • SortoVaritu © (22.06.09 12:18) [49]
    Поясните еще hFTP:HINTERNET а hFile:PHINTERNET. В чем разница?
  • brother © (22.06.09 12:20) [50]
    вообще, я думал это хэндлы, но

    > hFTP:HINTERNET а hFile:PHINTERNET. В чем разница?

    хэндл и поинтер?
  • Сергей М. © (22.06.09 12:30) [51]

    > SortoVaritu ©   (22.06.09 12:14) [47]


    Судя по этому прототипу у тебя и 'LIST' не должна работать)
  • SortoVaritu © (22.06.09 12:41) [52]
    FtpCommand(hFtp,true,FTP_TRANSFER_TYPE_BINARY,
    PChar('RETR '+MyFile),0,hFile). Хорошо hFile Это поинтер. А как тогда создать хэндл?
  • Сергей М. © (22.06.09 12:46) [53]
    А как объявлен  PHINTERNET ?
  • SortoVaritu © (22.06.09 12:50) [54]
    PHINTERNET=^HINTERNET
  • SortoVaritu © (22.06.09 12:53) [55]
    может быть

    phFile:=@hFile;
    FtpCommand(hFtp,true,FTP_TRANSFER_TYPE_BINARY,
    PChar('RETR '+MyFile),0,phFile)
  • Сергей М. © (22.06.09 12:55) [56]
    Ясно.
    Выкинь в топку свой прототип - его формировал кто-то без головы на плечах.

    function FtpCommand(
      hConnect: HINTERNET;
      fExpectResponse: BOOL;
      dwFlags: DWORD;
      lpszCommand: PChar;
      dwContext: DWORD;
      var hFtpCommand: HINTERNET): BOOL;
      stdcall; external 'wininet.dll' name 'FtpCommandA';
  • SortoVaritu © (22.06.09 13:02) [57]
    Этот прототип отсюдава взят
    http://www.cryer.co.uk/brian/delphi/wininet/example_ftpcommand.htm
    Только я пробовал менять var hFtpCommand: PHINTERNET на var hFtpCommand: HINTERNET. Результат тот же. Просто на самом деле непонятно, что должна возвращать функция Хэндл или поинтер?
  • SortoVaritu © (22.06.09 13:05) [58]
    FtpCommand(m_hFtpSession,true,FTP_TRANSFER_TYPE_ASCII,
       PChar('NLST'),0,@data_handle) Это в примерет так написано.
    @data_handle - Это ведь и есть поинтер для Хэндла или я ошибаюсь.
  • Сергей М. © (22.06.09 13:16) [59]

    > непонятно, что должна возвращать функция Хэндл или поинтер


    Читаешь первоисточник - MSDN - и все становится понятным:

    __out  HINTERNET *phFtpCommand
    ..

    phFtpCommand [out]

       A pointer to a handle that is created if a valid data socket is opened. The fExpectResponse parameter must be set to TRUE for phFtpCommand to be filled.

    Т.е. если

    var
     hFile: HINTERNET;

    то при

    var hFtpCommand: HINTERNET

    вызов такой:

    FtpCommand(.., hFile)

    а при

    pFtpCommand: PHINTERNET

    вызов уже иной:

    FtpCommand(.., @hFile)
 
Конференция "Сети" » Вопрос по FtpGetFile
Есть новые Нет новых   [134435   +33][b:0][p:0.001]