共享内存段是否与boost版本和编译器版本兼容

时间:2014-10-30 12:45:39

标签: c++ visual-studio boost ipc shared-memory

我正在维护一个旧项目,现在它必须与另一个项目构建一起使用更新版本的visual studio和更新版本的boost。为了与其他进程通信,第一个项目使用共享内存段,所以现在第二个项目必须读取该段(并写入它),但不创建它。

这可能吗?有什么限制吗?我似乎没有找到任何关于它的文档。

涉及Boost版本:1.35和1.55(可能更新为1.56) Visual Studio版本:8.0和2013。

1 个答案:

答案 0 :(得分:0)

这是一个有趣的问题。

在图书馆一级,我假设除非是文件,否则不存在重大变更。

但是,还有许多事情需要考虑。

  1. 你正在分享记忆

    这意味着您需要直接共享类的内存表示。

    这意味着:

  2. 的含义是:

    1. 您正在分享ABI

      即使你碰巧使用稍微不同的编译器标志,相同的编译器/库版本,这已经排除了兼容性。

    2. 换句话说,除非你控制两端并确保它们是二进制兼容的,否则不要共享内存。

      概要

      Boost的共享内存产品说没有关于数据表示(超过"如果你可以将它链接到相同的二进制文件中,它就足以用于IPC访问&# 34)。因此,如果您需要这种级别的隔离,请查看