-
И что сие может озночать
-
много чего...
-
И как быть
-
> как быть
Адрес запоминать)
И внимательно изучать прототип ф-ции.
-
а что не так с прототипом функции?
-
А я откуда знаю, что у тебя там с ним не так ?
Мне отсюда не видать)
-
ну стандартно: ошибка в 17 строке
-
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';
Вроде бы как все сделано верно.
-
> 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';
О_о ?
-
Поясните еще hFTP:HINTERNET а hFile:PHINTERNET. В чем разница?
-
вообще, я думал это хэндлы, но
> hFTP:HINTERNET а hFile:PHINTERNET. В чем разница?
хэндл и поинтер?
-
> SortoVaritu © (22.06.09 12:14) [47]
Судя по этому прототипу у тебя и 'LIST' не должна работать)
-
FtpCommand(hFtp,true,FTP_TRANSFER_TYPE_BINARY,
PChar('RETR '+MyFile),0,hFile). Хорошо hFile Это поинтер. А как тогда создать хэндл?
-
А как объявлен PHINTERNET ?
-
PHINTERNET=^HINTERNET
-
может быть
phFile:=@hFile;
FtpCommand(hFtp,true,FTP_TRANSFER_TYPE_BINARY,
PChar('RETR '+MyFile),0,phFile)
-
Ясно.
Выкинь в топку свой прототип - его формировал кто-то без головы на плечах.
function FtpCommand(
hConnect: HINTERNET;
fExpectResponse: BOOL;
dwFlags: DWORD;
lpszCommand: PChar;
dwContext: DWORD;
var hFtpCommand: HINTERNET): BOOL;
stdcall; external 'wininet.dll' name 'FtpCommandA';
-
-
FtpCommand(m_hFtpSession,true,FTP_TRANSFER_TYPE_ASCII,
PChar('NLST'),0,@data_handle) Это в примерет так написано.
@data_handle - Это ведь и есть поинтер для Хэндла или я ошибаюсь.
-
> непонятно, что должна возвращать функция Хэндл или поинтер
Читаешь первоисточник - 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)