如题。比如:VC++中这样定义的结构体:
typedef struct
{
void *content;
unsigned char flags;
unsigned char vsm_size;
unsigned char vsm_data [ZMQ_MAX_VSM_SIZE];
} zmq_msg_t;在delphi中我给它这样封装的:
zmq_msg_t=packed record
content:Pointer;
flags:Byte;
vsm_size:Byte;
vsm_data:array[0..29] of Byte;
end;由于我在delphi下调用VC++生成的动态链接库,其中动态链接库中的函数涉及到zmq_msg_t*类型。在delphi下我把zmq_msg_t *msg写成 var msg: zmq_msg_t,但是我发现在使用的时候,程序把zmq_msg_t的指针类型直接默认为pchar类型了,请问这是为为什么啊?
比如:我接收到第一条消息"This is the workload!",然后接收第二条消息“A”,但是我发现第二条消息打印出来是“Ahis is the workload!",即,第二条消息只是把第一个字节替换了,我要的结果是里面存储的只是"A"就好了。请问这究竟是怎么回事啊?
typedef struct
{
void *content;
unsigned char flags;
unsigned char vsm_size;
unsigned char vsm_data [ZMQ_MAX_VSM_SIZE];
} zmq_msg_t;在delphi中我给它这样封装的:
zmq_msg_t=packed record
content:Pointer;
flags:Byte;
vsm_size:Byte;
vsm_data:array[0..29] of Byte;
end;由于我在delphi下调用VC++生成的动态链接库,其中动态链接库中的函数涉及到zmq_msg_t*类型。在delphi下我把zmq_msg_t *msg写成 var msg: zmq_msg_t,但是我发现在使用的时候,程序把zmq_msg_t的指针类型直接默认为pchar类型了,请问这是为为什么啊?
比如:我接收到第一条消息"This is the workload!",然后接收第二条消息“A”,但是我发现第二条消息打印出来是“Ahis is the workload!",即,第二条消息只是把第一个字节替换了,我要的结果是里面存储的只是"A"就好了。请问这究竟是怎么回事啊?
解决方案 »
- 如何给一个buttonEdit设置快捷键呢
- 请教问题:我在ActionList里面创建ClientDataSetApply等敏感TOOLBUTTON,为什么不可以用?
- access数据库怎么样和odbc连接。
- 关于窗体图标
- 我要将一个treeview 中的内容完全 copy到另一个treeview中去,以下是代码……
- 怎样用delphi实现用modem连接两台计算机并进行数据交换??
- 求助delphi6.0安装序列号
- 求救一个B\S的例子
- 求助:各位大哥这样的情况需要怎么处理?
- 两个问题:如何作一条线.............
- 我想知道热带鱼屏幕保护的制作思路。
- Delphi调用C++ dll问题
那么Delphi 定义中 去掉 packed
type
zmq_msg_t= record
content:Pointer;
flags:Byte;
vsm_size:Byte;
vsm_data:array[0..29] of Byte;
end;
msg = ^zmq_msg_t;
这样试试。