當我使用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()
與之前版本相同的代碼,我能夠發送和接收值。
什麼是完整的,完整的錯誤消息? –