'初始化WinINet,返回HINTERNET handles
Private Declare Function InternetOpen Lib "wininet.dll" _
         Alias "InternetOpenA" _
            (ByVal lpszCallerName As String, _
             ByVal dwAccessType As Long, _
             ByVal lpszProxyName As String, _
             ByVal lpszProxyBypass As String, _
             ByVal dwFlags As Long) As Long
'建立Internet连接,打开FTP、Gopher或者HTTP会话。返回HINTERNET handles
Private Declare Function InternetConnect Lib "wininet.dll" _
            Alias "InternetConnectA" _
            (ByVal hInternetSession As Long, _
             ByVal lpszServerName As String, _
             ByVal nProxyPort As Integer, _
             ByVal lpszUsername As String, _
             ByVal lpszPassword As String, _
             ByVal dwService As Long, _
             ByVal dwFlags As Long, _
             ByVal dwContext As Long) As Long
             
'从FTP服务器上下载一个文件
Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
    (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
    ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
    ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As Boolean
'关闭Internet连接
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPrivate Sub Command1_Click()
    Dim InterOpen As Long, InterConn As Long
    Dim FtpGet As Boolean
    '初始化api
    InterOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
    vbNullString, vbNullString, 0&)
    If InterOpen Then
        '建立ftp连接
        InterConn = InternetConnect(InterOpen, "ftp://61.132.102.124", 0, _
        "", "", 1, &H8000000, 0)
        If InterConn Then
            FtpGet = FtpGetFile(InterConn, "/books/Exceptional_C++_cn.rar", "D:\1.rar", _
            0, 0, 1, 0)
            If FtpGet Then
                MsgBox "ok"
            End If
        End If
    End If
    
    InternetCloseHandle InterConn
    InternetCloseHandle InterOpen
    MsgBox "close ok"
End Sub
*******************************
FtpGet 值为什么返回的是0?是不是哪里错了?

解决方案 »

  1.   

    InterConn = InternetConnect(InterOpen, "ftp://61.132.102.124", 0, _
            "", "", 1, &H8000000, 0)
    這裡使用 "ftp://61.132.102.124"   感覺怪怪的  直接使用61.132.102.124
      

  2.   

    没有那么复杂  InternetConnect(InterOpen, sServer, INTERNET_INVALID_PORT_NUMBER, sUser, sPassword, INTERNET_SERVICE_FTP, m_INTERNET_FLAG_PASSIVE, 0)