提升共享内存

时间:2013-03-22 19:52:47

标签: c++ memory boost shared

我正在尝试使用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数组的变量时(但是在同一个类中) 我得到一个Access违规写入例外。

0 个答案:

没有答案