Невозможно подключиться к серверу ftp - PullRequest
3 голосов
/ 05 мая 2011

Я пытаюсь подключиться к серверу ftp через приложение powerbuilder, используя функции windows api. Мне удается подключиться к ftp-серверу через Internet Explorer (поэтому я не думаю, что это проблема с разрешениями), но по какой-то неизвестной причине приложение не работает.

String  ls_Null, &
            ls_id
Integer li_rc

li_rc = 1

IF Not InternetAutodial(AUTODIAL_FORCE_UNATTENDED, 0) THEN
    f_write_to_err_log('IMPORT Unable To Connect Internet - Dialup')
    li_rc = -1
ELSE
    SetNull(ls_Null)
    ls_id = "Care_Dsend"
    al_internet_handle = InternetOpen(ls_id, INTERNET_OPEN_TYPE_DIRECT, ls_Null, ls_Null, 0)        

    IF al_internet_handle > 0 THEN
        al_ftp_connect_handle = InternetConnect(al_internet_handle, is_ftp_url, il_ftp_port, is_ftp_user, is_ftp_password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, al_ref) 
    END IF
END IF

Return li_rc


//al_internet_handle, al_ftp_connect_handle are by ref long parms
//al_ref is a by ref unsignedlong parm
//is_ftp_url, is_ftp_user, is_ftp_password are strings
//il_ftp_port is long

Функция может возвращать дескриптор из функции API InternetOpen, но возвращает 0 из функции InternetConnect.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Хорошо, я выяснил, в чем проблема. Я пропустил ; Ansi в конце объявления моей функции, как в:

Функция ulong InternetOpen (ref строка lpszAgent, ulong dwAccessType, ссылка на строку lpszProxy, ссылка на строку lpszProxyBypass, ulong dwFlags) Библиотека "WININET.DLL" Псевдоним для "InternetOpenA ; Ansi "

1 голос
/ 05 мая 2011

Можете ли вы опубликовать свои локальные внешние функции или что вы используете для InternetAutodial(), InternetOpen() и т. Д.? Это не встроенные функции (по крайней мере, в моем Powerbuilder 11.2), и они не похожи на PFC. Кроме того, какую версию Powerbuilder вы используете.

В качестве альтернативы вы можете посмотреть следующие ссылки:

...