我用DELPHI开发的一个客户端用来发送数据给一个使用VC开发的服务端程序。
我客户端定义的数据格式为:
type
RLogon = record
ID:String[2];
Name:String[20];
end;现在我在服务端VC接收这个数据结构的时候定义的结构是:
char ID[2];
char Name[20];可是我发现这样有问题。请问,我应该在服务端如何定义这个结构呢???
我客户端定义的数据格式为:
type
RLogon = record
ID:String[2];
Name:String[20];
end;现在我在服务端VC接收这个数据结构的时候定义的结构是:
char ID[2];
char Name[20];可是我发现这样有问题。请问,我应该在服务端如何定义这个结构呢???
如sizeof等保证不同环境中的数据一致
或者DELPHI端定义成这样:
ID:array[0..1] of Char;
Name:array[0..19] of Char;
type
RLogon = record
ID:array[1..2] of char;
Name: array[1..20] of char;
end;
然后readbuffer到一个大数组,再move到结构体就可以了。
RLogon = record
ID:String[2];
Name:String[20];
end;
---
dephi中的String和c-style string是不一样的,因为dephi的String是Unicode编码的,所以你在VC里面用char字符串来表示就不相同了,前者是双字节编码,后者是单字节编码的.修改其中的一端的编码.