InternetReadFile函数问题
我在一个Activex中需要文件下载的功能, 使用了InternetReadFile这个API
我写了个函数
Function FileDownload(sUrl As Variant) As Boolean
Dim b(2048) As Byte
Dim s As String
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim bbuffer As Byte
Dim sReadBuffer As String * 2048
Dim FileName As String
Dim lNumberOfBytesRead As Long
Dim F1 As Integer
F1 = FreeFile
FileName = "E:\BitSpirit\Torrent\1212.torrent"
Open FileName For Binary As F1
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
Do While bDoLoop
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sReadBuffer = Left(sReadBuffer, lNumberOfBytesRead)
Debug.Print sReadBuffer
Put F1, , sReadBuffer
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Loop
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
Close #1
FileDownload = True
End Function
但是在使用过程中发现,InternetReadFile下载文本文件没有问题,返回过来全是正确的,但是一但下载二进制的文件,下载回来的数据就是错误的,还望高手解答