为什么我用wininet.dll 的 InternetOpenUrlA 取得二进制文件不正确,百分求救!!!

azai 2002-07-03 02:21:31
代码如下:
可以取得文本文件,但取得的图片比实际容量要大??

Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3

Private Const scUserAgent = "VB OpenUrl"
Private Const INTERNET_FLAG_RELOAD = &H80000000

Private Declare Function InternetOpen Lib "wininet.dll" Alias _
"InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As _
String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long


Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias _
"InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal _
sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal _
lContext As Long) As Long

Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As _
Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer

Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet _
As Long) As Integer


Private Sub saugen_Click()
Dim bRet As Boolean
Dim sReadBuffer As String * 200
Dim lNumberOfBytesRead As Long
Dim sBuffer As String
Dim FLB As Double
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim sUrl As String

sUrl = "http://localhost:8058/b.jpg"
Me.Visible = True
Label2.Caption = "connect to SERVER"
Label2.Refresh

hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, _
vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, _
INTERNET_FLAG_RELOAD, 0)


bDoLoop = True
While bDoLoop
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), _
lNumberOfBytesRead)
sBuffer = Left$(sReadBuffer, lNumberOfBytesRead)
Open "c:\b.jpg" For Binary As #1
Put 1, FLB + 1, sBuffer
Close
FLB = FLB + Len(sBuffer)
Label2.Caption = FLB & " Bytes bereits gesaugt"
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
DoEvents
If Not bRet Then
MsgBox "Error " & Err.LastDllError
End If
Wend

If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
Label2.Caption = FLB & " [Fertig]"
End Sub
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chice_wxg 2002-07-05
  • 打赏
  • 举报
回复
hehe
Chice_wxg 2002-07-05
  • 打赏
  • 举报
回复
hehe
azai 2002-07-05
  • 打赏
  • 举报
回复
我已经知道答案了,可我的分给谁呢?谁来的早我给谁。
那是该控件的bug,微软要我们等升级。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧