我正在尝试使用Windows API函数通过powerbuilder应用程序连接到ftp服务器。我设法通过Internet Explorer连接到ftp服务器(所以我认为这不是权限问题),但是由于某种未知原因,该应用程序失败了。
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
该函数设法从InternetOpen api函数返回一个句柄,但从InternetConnect函数返回0。
有任何想法吗?
最佳答案
好的,我发现了问题所在。我在函数声明的末尾缺少; Ansi ,如下所示:
ulong InternetOpen函数(参考
字符串lpszAgent,ulong dwAccessType,
引用字符串lpszProxy,引用字符串
lpszProxyBypass,ulong dwFlags)
库“WININET.DLL”的别名
“InternetOpenA ; Ansi ”