我试图在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 数组的一个变量(但在同一个类中)时,我得到一个访问冲突写入异常。