我在用VB WinSocket 做Client 发送一个自定义结构 到delphi winsocket 做的server 端自定义结构如下
delphi server 端Type recInfo = Record
     intNo: Integer;
     strName: String[200];
End;请问vb client 端的结构该如何写才能对应
Private Type recInfo
     intNo As Integer
     strName As ?
End Type

解决方案 »

  1.   

    可以这样:
    Private Type recInfo
         intNo As Integer
         strName As string*200
    End Type不过,建议这样:
    Private Type recInfo
         intNo As Integer
         strName(199) As byte
    End Type
      

  2.   

    vb端采用这种写法 
    Private Type recInfo
         intNo As Integer
         strName(199) As byte
    End Type
    遇到 strName 值没有传递过去的问题, 该如何解决?具体我写的源码如下, 请各位高手帮忙可是采用
    Dim S As String
    S="Text"
    CopyMemory ByVal VarPtr(strName(1)), ByVal StrPtr(S), 200这种类型我的服务端结构
    Type recInfo = Record
         intNo: Integer;
         strName: String[200];
    End;
    没有接受到  strName 的值啊, 该如何处理呢我的vb 源码是这样的Private Type recInfo
         intNo As Integer
       '  strName(1 To 200) As String
       '  strName As String * 200
          strName(199) As ByteEnd Type
    Dim recTemp As recInfo、、、、//////////////////////////
    recTemp.intNo = 15Dim S As String
    S = "Text"
    CopyMemory ByVal VarPtr(recTemp.strName(1)), ByVal StrPtr(S), 200Dim buf(Len(recTemp)) As Byte
    CopyMemory buf(0), recTemp, Len(recTemp)
    Winsock1.SendData buf(0)/////////////////////////////////delphi 的接受端是绝对没有问题的, 我用delphi 做的客户端测试过
      

  3.   

    试试:
    CopyMemory ByVal VarPtr(strName(0)), ByVal StrPtr(S), 200vb数组,元素的下标默认从0开始
      

  4.   

    现在能够传输自定义结构中的 Integer 数据,strName(199) As byte 在服务器端接收不到,
    请问该问题如何解决