我在实现内存映射文件时没有问题。问题是。假设这返回一个有效的内存视图。
void* pBuf = MapViewOfFile(hMapFile,
FILE_MAP_WRITE,
0,
0,
0);
我有替代方法使用memcpy为其提供数据吗?例如,我可以告诉我的应用程序存储数据吗?我真的想要像char * buffer = new char [1073741824],其中new将数据放在内存映射文件中。这看似合乎逻辑。或者我是否必须编写一个使用memcpy写入内存视图的包装器?这将是令人失望的。
答案 0 :(得分:3)
最简单的方法可能是使用boost memory mapped file classes,这样可以提供便携的额外好处。
答案 1 :(得分:0)
您可以使用placement new运算符,也可以将地址强制转换为要使用的结构或类。放置new的优点是将调用类的构造函数。如果从那时开始使用该指针,则不需要复制数据,而是直接读取和写入数据。