我正在尝试使用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违规写入例外。