回 帖 发 新 帖 刷新版面

主题:缺少数组,请求帮助

Public Function ResolveHostname(ByVal ipaddress As String) As String
    Dim hostip_addr As Long
    Dim hostent_addr As Long
    Dim newAddr As Long
    Dim host As HostEnt
    Dim strTemp  As String
     '
    Dim strHost As String * 255
    If (SocketsInitialize()) Then
        Let newAddr = inet_addr(ipaddress)
        Let hostent_addr = gethostbyaddr(newAddr, Len(newAddr), AF_INET)
        If (hostent_addr = 0) Then
            Call SocketsCleanup
            Exit Function
        End If
        Call RtlMoveMemory(host, hostent_addr, Len(host))
        Call RtlMoveMemory(ByVal strHost, host.hName, 255)
        Let strTemp = strHost
       
        If InStr(strTemp, Chr(0)) <> 0 Then strTemp = Left(strTemp, InStr(strTemp, Chr(0)) - 1)
 
        Let strTemp = Trim(strTemp)
        Let ResolveHostname = strTemp
        Call SocketsCleanup
    End If
End Function


这行出错:
If InStr(strTemp, Chr(0)) <> 0 Then strTemp = Left(strTemp, InStr(strTemp, Chr(0)) - 1)

回复列表 (共3个回复)

沙发

Chr(0)代表什么意思呢?

板凳

chr(0) 字符结束标志符号
If InStr(strTemp, Chr(0)) <> 0 Then strTemp = Left(strTemp, InStr(strTemp, Chr(0)) - 1)
这句表面上来看没什么错误.
没有完整的程序无法判断,关键是看这个变量strHost的值.

3 楼

在vb里似乎没有这样判断的?

我来回复

您尚未登录,请登录后再回复。点此登录或注册