xykz 发表于 2008-6-17 19:24

关于InternetReadFile的问题

请问怎么用InternetReadFile把网页源代码读到一个byte数组里

如下面的一段程序:

[code]Option Explicit
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 hInternetSession As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lHeadersLength 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

Function GetCode(Url As String) As String
    Dim Hwnd1 As Long
    Dim Hwnd2 As Long
    Dim Hwnd3 As Long
    Dim Hwnd4 As Long
    Dim Str1 As String * 1024
    Const INTERNET_FLAG_NO_CACHE_WRITE = &H4000000
    Hwnd1 = InternetOpen("VBTagEdit", 1, vbNullString, vbNullString, 0)
    Hwnd2 = InternetOpenUrl(Hwnd1, Url, vbNullString, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0)
    If Hwnd2 <> 0 Then
        Do
            Hwnd4 = InternetReadFile(Hwnd2, Str1, 1024, Hwnd3)
            GetCode = GetCode & Mid$(Str1, 1, Hwnd3)
        Loop While (Hwnd3 <> 0)
    End If
    InternetCloseHandle (Hwnd2)
End Function
[/code]

返回的是string类型的。。。怎样才能返回byte类型呢?

三断笛 发表于 2008-6-17 20:04

读网页源代码还是不要用InternetReadFile了吧?
这个问题我也问过了,我问的是InternetWriteFile上传二进制文件 一直没有解决
网页文件本来就是ASCII码的  不要返回Byte了吧?ASCII码的可以直接用 二进制的我也想不着办法了

jxyga111 发表于 2008-6-17 20:16

[quote][bo][un]三断笛[/un] 在 2008-6-17 20:04 的发言:[/bo]

读网页源代码还是不要用InternetReadFile了吧?
这个问题我也问过了,我问的是InternetWriteFile上传二进制文件 一直没有解决
网页文件本来就是ASCII码的  不要返回Byte了吧?ASCII码的可以直接用 二进制的我也想不着 ... [/quote]

签名怎么搞的我搞不定啊

jxyga111 发表于 2008-6-17 20:22

已经搞定不用了

页: [1]

编程论坛