当我使用Boost 1.53.0,我用的发送和接收这样的:的boost :: message_queue ::接收/发送不与最新版本
int i=0;
msg_queue.send(&i, sizeof(i), 0);
int number;
unsigned int priority = 0;
boost::interprocess::message_queue::size_type recvd_size;
msg_queue.receive(&number, sizeof(number), recvd_size, priority);
现在,使用最新的1.65.1版本,我得到一个无效的参数错误,这个问题似乎是的sizeof()。
Boost文档没有1.53.0版本1.65.1之间切换。 Message_queue Doc
发送的签名和接收需要SIZE_TYPE我曾经的sizeof(),我试图将它转换为SIZE_TYPE,使用SIZE_TYPE可变,但是在运行时我会遇到一个库错误。
感谢您的帮助了。
编辑: 要将用户的要求,这里是我得到的这取决于什么我尝试不同的错误消息。
#1 attempt: msg_queue.receive(&number, sizeof(number), recvd_size, priority);
#1 Error at compile time: Invalid arguments 'Canditates are: void send(const void *, ?, unsigned int)'
#1 Comment: Same error for Message_Queue::Send()
与之前版本相同的代码,我能够发送和接收值。
什么是完整的,完整的错误消息? –