mingw 和 Visual Studio 应用程序之间的共享内存

Posted

技术标签:

【中文标题】mingw 和 Visual Studio 应用程序之间的共享内存【英文标题】:Shared memory between mingw and visual studio application 【发布时间】:2013-09-03 21:04:39 【问题描述】:

是否可以在使用 MinGW 编译的应用程序和使用 Visual Studio 编译的应用程序之间共享内存区域?

我依赖于 boost 进程间:

  shared_memory_object shm (create_only, "MySharedMemory", read_write);
  shm.truncate(1000);
  mapped_region region(shm, read_write);
  int *pi = (int *)region.get_address();

我已经意识到这是不可能通过 Cygwin 实现的,因为 boost shared_memory_object 是通过 Cygwin posix 层创建的。

【问题讨论】:

【参考方案1】:

一个简单的测试程序确认这是可能的。一个警告是使用完全相同的增强版本。在 boost 1.53 和 1.54 之间,为底层内存映射文件创建的唯一 ID 显然发生了变化。 但是我没有检查内存对齐问题。

【讨论】:

以上是关于mingw 和 Visual Studio 应用程序之间的共享内存的主要内容,如果未能解决你的问题,请参考以下文章

C : Visual Studio 和 Eclipse+MinGW 中的预编译头文件

Visual Studio 2013 中的 POSIX 标头(来自 MinGW 项目)

我可以强制 Visual Studio 使用 mingw 编译器吗

Qt MinGW WIN32 到 Visual Studio 2010

可以在没有 Visual Studio 的情况下使用 MinGw 编译 python.exe

将 std::wstring 从 Visual Studio 移植到 mingw gcc