![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Wininet: функция FtpCommand()
Smb © (2008-07-23 07:53:00)Пробема следующая:
Хочу заюзать FtpCommand() из WinAPI. Столкнулся с трудностью получения результатов команды.
Начал ковырять. Обнаружил что объявление этой функции в дельфийском файле WinInet.pas отличается от приведенного в MSDN( у функции в MSDN есть дополнительный обязательный параметр ). Все найденные примеры используют вариант с этим параметром (__out HINTERNET *phFtpCommand). На одном сайте ( http://www.cryer.co.uk/brian/delphi/wininet.htm#FtpCommand) вообще написано что в Delphi 5, 6, 7 (и предположительно в следующих) о_ш_и_б_к_а! Ну то
есть неправильно объявлена эта функция: пропущен этот параметр. Может кто сталкивался с такой проблемой? Подскажите что делать, пожалуйста.
smb (2008-08-01 09:45:00) [1]В общем попарился я с этим и плюнул. FtpCommand() нормально работает с параметрами из WinInet.pas. Результат можно получить функцией InternetGetLastResponseInfo(). Однако уж больно все закручено у них. Посылает команды которые я не просил посылать. С памятью траблы и т.д.
Я не стал дальше мучаться и написал своего FTP-клиента на сокетах. Благо функционал мне требовался небольшой. Всего то download, upload, delete, list, resume. Там правда была запарка с неблокирующимим режимами сокета-сервера, но это уже выходит за рамки данного вопроса. Всем спасибо за помощь.
app (2008-07-23 18:22:00) [2]> Smb (23.07.2008 18:05:04) [4]
Перенесу, но данный факт надо было подчеркнуть особо, чтобы даже поползновений не было.
(2008-07-23 18:21:00) [3]Удалено модератором
Anatoly Podgoretsky (2008-07-23 18:20:00) [4]> Smb (23.07.2008 17:55:03) [3]
Действительно, тут я виноват не обратил внимание на верхушку дерева, обрадовался, что сразу нашел нужное.
http://msdn.microsoft.com/en-us/library/aa452208.aspx
Smb (2008-07-23 18:05:00) [5]Вопрос переместившему обсуждение сюда из ветки WinAPI (полагаю это уважаемый модератор):
Скажите, а исходя из чего вы переместили этот топик сюда? Слово "ftp" конечно относится к сетям, однако меня в рамках топика волнует именно вопрос странного объявления API-функции...
Smb (2008-07-23 17:55:00) [6]
> ну переобъяви, в чем проблема
хм... интересно. попробую вечерком. до этого пробовал переобъявлять в WinInet.pas но ничего не вышло так как не компилилось, а с make немного попарился и плюнул...
> Откуда такие дикие предположения
отсюда:
http://msdn.microsoft.com/en-us/library/aa384133.aspx
а ваше предположение отсюда если не ошибаюсь (и касается оно по всей видимости только Windows CE:
http://msdn.microsoft.com/en-us/library/aa452208.aspx
Anatoly Podgoretsky (2008-07-23 11:31:00) [7]Откуда такие дикие предположения, прототип приведеный в MSDN соответствует объявлению в WinInet.pas
BOOL WINAPI FtpCommand(
HINTERNET hConnect,
BOOL fExpectResponse,
DWORD dwFlags,
LPCTSTR lpszCommand,
DWORD dwContext
);
clickmaker (2008-07-23 10:36:00) [8]ну переобъяви, в чем проблема
function MyFtpCommand(hConnect: HINTERNET; fExpectResponse: LongBool; dwFlags: DWORD; lpszCommand: PChar; dwContext: Pointer; phFtpCommand: PHINTERNET): LongBool; stdcall; external 'wininet.dll' name 'FtpCommandA';