Я использую межпроцессную очередь сообщений Boost в Windows, однако я столкнулся с проблемой, что будет выдано сообщение об ошибке, когда max_msg_size не равен buffer_size, часть моего кода выглядит следующим образом:
//process A
message_queue::remove(name);
m_MQ = std::make_unique<message_queue>(create_only, name,2000,300);
m_MQ->try_send(buffer, buffer_size, 0);
//process B
m_MQ = std::make_unique<message_queue>(open_only, name);
m_MQ->try_receive(buffer, buffer_size, recvd_size, priority);
В этом случае, если buffer_size
не равно 300, он выдаст boost::interprocess_exception::library_error
, и я больше не могу передавать буфер переменной длины.
Большое спасибо.