确认一键查看最优答案
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
这个vc结构体是这样的:
其中ZMQ_MAX_VSM_SIZE=30,請教这个结构体用Delphi封装出来时怎样的对象名称不变哈
我写的有点小问题,应该是
能够把数组变成指针吗
不要变成指针,这样结构体的長度就不对了
如果你程序里要用到结构体数组还要注意字节对齐的问题。c++的结构体是4字节对齐delphi默认是8的
字节对齐是什么意思呢?
我在DelphiΦ掉要VC生成的动态链接库其中动态链接库有函数的参数就是这个结构体的指针。
动态链接库中的函数原型是:
我在Delphi中是这样定义的:
这个里面其实就是四个问题:
3 静态数组就是确定一个长度,C的结构体是默认对其的转换成Delphi的记录,不用加packed
4 C的参数默认调用规则是cdecl这跟Delphi默认的不一致,一定要写清楚
因此,你这样写是没有问题的
对其不对齐关系到内存的摆放、存储、寻址。最明显的就是用SizeOf测试对齐、不对齐的大小就明白了