我用DELPHI开发的一个客户端用来发送数据给一个使用VC开发的服务端程序。
我客户端定义的数据格式为:
type
  RLogon = record
    ID:String[2];
    Name:String[20];
  end;现在我在服务端VC接收这个数据结构的时候定义的结构是:
char ID[2];
char Name[20];可是我发现这样有问题。请问,我应该在服务端如何定义这个结构呢???

解决方案 »

  1.   

    使用各种宏和函数
    如sizeof等保证不同环境中的数据一致
      

  2.   

    你发现这样有什么问题呢?
    或者DELPHI端定义成这样:
    ID:array[0..1] of Char;
    Name:array[0..19] of Char;
      

  3.   

    VC服务端定义没有错,是delphi端不能这样定义。
      

  4.   

    刚试了一下,delphi端写成这样。
    type
      RLogon = record
        ID:array[1..2] of char;
        Name: array[1..20] of char;
    end;
    然后readbuffer到一个大数组,再move到结构体就可以了。
      

  5.   

    使用Xml打包数据,这样客户端和服务器端各自不需要关心对方的类型
      

  6.   

    在DELPHI客户端定义成STRING[2]一定没有错的。因为定义成这样我的程序运行的很正常。
      

  7.   

    type
      RLogon = record
        ID:String[2];
        Name:String[20];
      end;
    ---
    dephi中的String和c-style string是不一样的,因为dephi的String是Unicode编码的,所以你在VC里面用char字符串来表示就不相同了,前者是双字节编码,后者是单字节编码的.修改其中的一端的编码.