我正在尝试使用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。
有什么想法吗?
答案 0 :(得分:2)
好的,我发现了问题所在。我在函数声明结尾处缺少; Ansi ,如:
函数ulong InternetOpen(ref string lpszAgent,ulong dwAccessType, ref string lpszProxy,ref string lpszProxyBypass,ulong dwFlags) 库“WININET.DLL”别名 “InternetOpenA ; Ansi ”
答案 1 :(得分:1)
您可以发布本地外部函数或您用于InternetAutodial()
,InternetOpen()
等的任何内容吗?这些不是内置函数(至少不在我的Powerbuilder 11.2中),它们看起来不像PFC。此外,您使用的是什么版本的Powerbuilder。
或者,您可能希望查看以下链接: