我正在使用 boost::interprocess 在两个应用程序之间进行通信。当两个应用程序由同一个用户启动时,效果很好。
当其中一个应用程序是服务时,它会失败。
我发现共享媒体实际上是在“TMP”目录中创建的文件。所以它失败了,因为每个应用程序都在他自己的“TMP”目录中创建自己的文件。
也许我没有将它用于我的特定目的的好方法。
有人知道如何解决我的问题吗?
非常感谢,
网卡
编辑:我尝试使用“ managed_mapped_file ”。我的问题是 win32 实现正在调用“ CreateFileMapping ”而没有指定对象的名称。在我的特殊情况下,我认为我需要指定类似“ Global\MyMappedFile ”的内容,以便应用程序和服务都可以查看映射文件。