我在用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.   

    strName As String * 200
    或者
    strName(1 To 200) As Byte
    看这样可否,我有1年多没接触VB了
      

  2.   

    请问一个简单的问题, 如何给数组 strName(1 To 200) As Byte 赋值
      

  3.   

    赋值应该是strName[1]、strName[2]........
      

  4.   

    使用CopyMemory
    Dim S As String
    S="Text"
    CopyMemory ByVal VarPtr(strName(1)), ByVal StrPtr(S), 200
    对CopyMemory声明时前两个参数的传递方法都是ByVal,参数类型都是Long
      

  5.   

    赋值应该是strName[1]、strName[2]........
    错误的, 不行啊
      

  6.   

    可是采用
    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 做的客户端测试过