Winapi Boost进程间消息队列和COM

Winapi Boost进程间消息队列和COM,winapi,boost,com,message-queue,interprocess,Winapi,Boost,Com,Message Queue,Interprocess,我正在使用boost::进程间::消息队列进行进程间的通信。其中一个我用 ::CoInitializeEx( 0, COINIT_MULTITHREADED ); 设置COM调用。我无法从另一个进程访问此调用之后创建的任何队列,或者在同一进程中但在Conit调用之前创建的任何队列 我不太熟悉COM及其线程模型,Conit调用是由一位同事添加的。我能做些什么来解决这个问题 下面是一个简短的片段来说明: boost::interprocess::message_queue m_queue1( bo

我正在使用boost::进程间::消息队列进行进程间的通信。其中一个我用

::CoInitializeEx( 0, COINIT_MULTITHREADED );
设置COM调用。我无法从另一个进程访问此调用之后创建的任何队列,或者在同一进程中但在Conit调用之前创建的任何队列

我不太熟悉COM及其线程模型,Conit调用是由一位同事添加的。我能做些什么来解决这个问题

下面是一个简短的片段来说明:

boost::interprocess::message_queue m_queue1( boost::interprocess::open_or_create, "testqueue", 256, sizeof(int) );
::CoInitializeEx( 0, COINIT_MULTITHREADED );
boost::interprocess::message_queue m_queue2( boost::interprocess::open_only, "testqueue" );
在本例中,第二个队列的构造函数将抛出异常,因为它认为队列不存在。如果我取下硬币,它就可以叫它了

编辑:
Boost版本是1.46.1。在上面的代码段中调用Conit会返回S_OK。

CoInitializeX的返回值是多少?不要对boost版本保密。用上述问题的答案更新了问题。可能与以下相关: