我正在维护一个旧项目,现在它必须与另一个项目构建一起使用更新版本的visual studio和更新版本的boost。为了与其他进程通信,第一个项目使用共享内存段,所以现在第二个项目必须读取该段(并写入它),但不创建它。
这可能吗?有什么限制吗?我似乎没有找到任何关于它的文档。
涉及Boost版本:1.35和1.55(可能更新为1.56) Visual Studio版本:8.0和2013。
答案 0 :(得分:0)
这是一个有趣的问题。
在图书馆一级,我假设除非是文件,否则不存在重大变更。
但是,还有许多事情需要考虑。
你正在分享记忆
这意味着您需要直接共享类的内存表示。
这意味着:
的含义是:
您正在分享ABI
即使你碰巧使用稍微不同的编译器标志,相同的编译器/库版本,这已经排除了兼容性。
换句话说,除非你控制两端并确保它们是二进制兼容的,否则不要共享内存。
Boost的共享内存产品说没有关于数据表示(超过"如果你可以将它链接到相同的二进制文件中,它就足以用于IPC访问&# 34)。因此,如果您需要这种级别的隔离,请查看