gpt4 book ai didi

c++ - 如何使用 Windows 的 Boost 进程间消息队列?

转载 作者:行者123 更新时间:2023-11-30 04:24:56 25 4
gpt4 key购买 nike

我正在使用 Boost Interprocess 实现进程间通信。作为测试,我以 boost documentation 中的示例为例.

第一个进程(创建消息队列)使用 CreateProcess(NULL, (LPSTR)commandStream.str().c_str(), NULL, NULL 启动另一个进程(应该从队列接收消息) , FALSE, NULL, NULL, NULL, &si, &pi)

第一个进程使用 message_queue mq(create_only, "message_queue", 100, sizeof(int)) 创建队列。

不幸的是,message_queue mq(open_only, "message_queue") 抛出一个 interprocess_exception。异常包含描述Das System kann die angegebene Datei nicht finden。(系统找不到请求的文件)。

当队列的创建和打开都在一个进程中完成时,不会抛出任何异常并且通信按照文档中的描述进行。

有人知道什么可能导致异常以及我该如何解决吗?

编辑:我正在使用 Boost 1.45

最佳答案

异常是由 Boost Interpocessing 库中的问题引起的,如 this ticket 中所述.该错误已重新打开,我并不完全清楚 Boost 代码是如何更改的以及如何将解决方法应用于 Boost 1.45。但是,升级到 Boost 1.51 后,我现在可以按预期使用消息队列了。

关于c++ - 如何使用 Windows 的 Boost 进程间消息队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12424440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com