如题~~
请问怎么解决?我就是要用VB 来实现PING 一台机器后 的详细信息 显示出来 但出现这个东西 

解决方案 »

  1.   

    楼主的声明错了,WSAStarup<>WSAStartup。
    正确的声明如下:
    Private Const WSADESCRIPTION_LEN  As Long = 257
    Private Const WSASYS_STATUS_LEN As Long = 129
    Private Type WSADATA
        wVersion As Integer
        wHighVersion As Integer
        szDescription As String * WSADESCRIPTION_LEN
        szSystemStatus As String * WSASYS_STATUS_LEN
        iMaxSockets As Integer
        iMaxUdpDg As Integer
        lpVendorInfo As Long
    End Type
    Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequested As Long, lpWSAData As WSADATA) As Long
      

  2.   

    大哥~~~ 我改了 还是出现这样 也改成了WSAStartup 还是不行钠
      

  3.   


    Public Const WSADESCRIPTION_LEN As Long = 257
        Public Const WSASYS_STATUS_LEN As Long = 129    Public Structure wsadata
            Dim wversion As Integer
            Dim whighversion As Integer
            Dim szDescription As String
            Dim szSystemStatus As String
            Dim iMaxSockets As Integer
            Dim iMaxUdpDg As Integer
            Dim lpVendorInfo As Long
        End Structure
    .
    .
    .
    Public Declare Function wsastartup Lib "wsock32.dll" (ByVal wversionreqired As Long, ByVal lpwsadata As wsadata) As Long
    .
    .
    .
    Dim wsad As wsadata
        Public Function socketsinitialize() As Boolean        Dim x As Integer
            Dim szlobyte As String
            Dim szhibyte As String
            Dim szbuf As String
            x = wsastartup(ws_version_reqd, wsad)
    程序没什么报错 但调试的时候就会出现 DLL“wsock32.dll”中找到名为“wsastarup”的入口点  指向x = wsastartup(ws_version_reqd, wsad) 这行
      

  4.   

    public const WSA_SysStatusSize As Integer = public const WSA_DescriptionSize As Integer = public Type WSADATA
    wVersion As Integer
    lpVendorInfo As Long
    szSystemStatus As String * WSA_SysStatusSize
    iMaxSockets As Integer
    iMaxUdpDg As Integer
    szDescription As String * WSA_DescriptionSize
    wHighVersion As Integer
    End Typepublic Declare Function WSAStartup _
                   Lib "ws2_32.dll" (ByVal wVersionRequiredas integer, _
                                     ByRef lpWSAData As WSADATA) As Long
      

  5.   

    以下两行代码有误:
            Dim szDescription As String
            Dim szSystemStatus As String 
    我的代码中是这样定义的:
        szDescription As String * WSADESCRIPTION_LEN
        szSystemStatus As String * WSASYS_STATUS_LEN 
    这两个字符串的长度一定要指定,否则,WSADATA结构的长度不对,从而导致调用失败。
    另外,ws2_32.dll和sock32.dll中都有这个API,声明完全一样。
      

  6.   

    ???怎么实现法? 在szDescription As String  后面 加什么东西 具体讲讲 谢谢
      

  7.   

    没接触过VB.NET,我想应该是这样声明吧:
        Public Structure wsadata
            Dim wversion As Integer
            Dim whighversion As Integer
            Dim szDescription(WSADESCRIPTION_LEN) As Byte 'WSADESCRIPTION_LEN为常量256+1
            Dim szSystemStatus(WSASYS_STATUS_LEN) As String 'WSASYS_STATUS_LEN为常量128+1
            Dim iMaxSockets As Integer
            Dim iMaxUdpDg As Integer
            Dim lpVendorInfo As Long
        End Structure 
      

  8.   

    错了,应该是:
        Public Structure wsadata
            Dim wversion As Integer
            Dim whighversion As Integer
            Dim szDescription(WSADESCRIPTION_LEN) As Byte 'WSADESCRIPTION_LEN为常量256+1
            Dim szSystemStatus(WSASYS_STATUS_LEN) As Byte 'WSASYS_STATUS_LEN为常量128+1
            Dim iMaxSockets As Integer
            Dim iMaxUdpDg As Integer
            Dim lpVendorInfo As Long
        End Structure