0

我试图在boost的windows_shared_memory的帮助下在应用程序之间获得一个共享的char数组。

void testApp::initSharedMem()
{
  using namespace boost::interprocess;

  //Create a native windows shared memory object.
  windows_shared_memory shm (create_only, "MySharedMemory", read_write, 256);

  //Map the whole shared memory in this process
  mapped_region region(shm, read_write);

  //Write all the memory to 1
  std::memset(region.get_address(), 'a', 256 * sizeof(char));
  beatLines = static_cast<char*>(region.get_address());

  beatLines[10] = 'b';
}

最后一行beatLines[10] = 'b';工作得很好,但是当我尝试在 initSharedMem() 方法之外分配 beatLines 数组的一个变量(但在同一个类中)时,我得到一个访问冲突写入异常。

4

0 回答 0