Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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';


Наверх

Титульная страница Поиск, карта сайта Написать письмо