leon460 发表于 2013-9-13 15:20:01

关于dll调用问题,请会调用dll的大神帮忙!!晕头

现象:以下代码不知道为什么在winnt4.0下第一个msgbox没有错误,但是第二个msgbox会报@error错误,我猜想是因为调用wininet.dll文件时,各操作系统的wininet.dll会不一样,
问题,请教dll调用的大神教下,以下怎样修改,才能符合win4.0nt,我还有_ftpFilePut等函数需要修改,非常感谢啊。
$open=_FTPOpen("Mytest")
MsgBox(0,$open,@error)
$close=_FTPClose($open)
MsgBox(0,$close,@error)

Func _FTPClose($l_InternetSession)
       
        Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
        If @error OR $ai_InternetCloseHandle = 0 Then
                SetError(-1)
                Return 0
        EndIf
       
        Return $ai_InternetCloseHandle
       
EndFunc ;==> _FTPClose()
Func _FTPOpen($s_Agent, $l_AccessType = 1, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0)
       
        Local $ai_InternetOpen = DllCall('wininet.dll', 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags)
        If @error OR $ai_InternetOpen = 0 Then
                SetError(-1)
                Return 0
        EndIf
               
        Return $ai_InternetOpen
       
EndFunc ;==> _FTPOpen()

Ycxw2008 发表于 2013-9-13 17:23:26

本帖最后由 Ycxw2008 于 2013-9-13 17:25 编辑

哪步错了?好像都没错?
我怎么运行10遍都没错

leon460 发表于 2013-9-16 08:56:20

回复 2# Ycxw2008

我的意思是以上代码不适合 windows NT 4.0 ,但是我不知道怎么修改 dllcall

Ycxw2008 发表于 2013-9-16 20:06:34

回复 3# leon460


    不好意思,没看清。
    不过我在MSDN查过你调的那2个函数了,好像都没问题

leon460 发表于 2013-9-17 10:03:32

回复 4# Ycxw2008

MSDN上的说明好像最低系统是window2000?
页: [1]
查看完整版本: 关于dll调用问题,请会调用dll的大神帮忙!!晕头