读书人

请问这个vc中的结构体在Delphi中应该怎

发布时间: 2012-02-09 18:22:27 作者: rapoo

请教这个vc中的结构体在Delphi中应该怎样封装?
这个vc结构体是这样的:
typedef struct
{
void *content;
unsigned char flags;
unsigned char vsm_size;
unsigned char vsm_data [ZMQ_MAX_VSM_SIZE];
} zmq_msg_t;

其中,ZMQ_MAX_VSM_SIZE=30,请教这个结构体用Delphi封装出来时怎样的?对象名称不变哈

[解决办法]

探讨

TMQMsg = record
Content: Pointer;
Vsm_Size: Char;
Vsm_Data: array[0..ZMQ_MAX_VSM_SIZE - 1] of Char;
end;
参考

[解决办法]
不要变成指针,这样结构体的长度就不对了

如果你程序里要用到结构体数组,还要注意字节对齐的问题。c++的结构体是4字节对齐,delphi默认是8的
[解决办法]
探讨
字节对齐是什么意思呢?
我在Delphi中掉要VC生成的动态链接库,其中动态链接库有函数的参数就是这个结构体的指针。
我的封装是这样的:

type
zmq_msg_t = record
content:Pointer;
flags:Byte;
vsm_size:Byte;
vsm_data:array[0..29] of Byte;
end;
zmq_msg……

[解决办法]
探讨

字节对齐是什么意思呢?
我在Delphi中掉要VC生成的动态链接库,其中动态链接库有函数的参数就是这个结构体的指针。
我的封装是这样的:

type
zmq_msg_t = record
content:Pointer;
flags:Byte;
vsm_size:Byte;
vsm_data:array[0..29] of Byte;
end;
zm……

读书人网 >.NET

热点推荐