-
Пробема следующая: Хочу заюзать FtpCommand() из WinAPI. Столкнулся с трудностью получения результатов команды. Начал ковырять. Обнаружил что объявление этой функции в дельфийском файле WinInet.pas отличается от приведенного в MSDN( у функции в MSDN есть дополнительный обязательный параметр ). Все найденные примеры используют вариант с этим параметром (__out HINTERNET *phFtpCommand). На одном сайте ( http://www.cryer.co.uk/brian/delphi/wininet.htm#FtpCommand) вообще написано что в Delphi 5, 6, 7 (и предположительно в следующих) о_ш_и_б_к_а! Ну то есть неправильно объявлена эта функция: пропущен этот параметр. Может кто сталкивался с такой проблемой? Подскажите что делать, пожалуйста.
-
ну переобъяви, в чем проблема function MyFtpCommand(hConnect: HINTERNET; fExpectResponse: LongBool; dwFlags: DWORD; lpszCommand: PChar; dwContext: Pointer; phFtpCommand: PHINTERNET): LongBool; stdcall; external 'wininet.dll' name 'FtpCommandA';
-
Откуда такие дикие предположения, прототип приведеный в MSDN соответствует объявлению в WinInet.pas BOOL WINAPI FtpCommand(
HINTERNET hConnect,
BOOL fExpectResponse,
DWORD dwFlags,
LPCTSTR lpszCommand,
DWORD dwContext
);
-
-
Вопрос переместившему обсуждение сюда из ветки WinAPI (полагаю это уважаемый модератор): Скажите, а исходя из чего вы переместили этот топик сюда? Слово "ftp" конечно относится к сетям, однако меня в рамках топика волнует именно вопрос странного объявления API-функции...
-
-
Удалено модератором
-
> Smb (23.07.2008 18:05:04) [4]
Перенесу, но данный факт надо было подчеркнуть особо, чтобы даже поползновений не было.
-
В общем попарился я с этим и плюнул. FtpCommand() нормально работает с параметрами из WinInet.pas. Результат можно получить функцией InternetGetLastResponseInfo(). Однако уж больно все закручено у них. Посылает команды которые я не просил посылать. С памятью траблы и т.д. Я не стал дальше мучаться и написал своего FTP-клиента на сокетах. Благо функционал мне требовался небольшой. Всего то download, upload, delete, list, resume. Там правда была запарка с неблокирующимим режимами сокета-сервера, но это уже выходит за рамки данного вопроса. Всем спасибо за помощь.
|