C ++内存映射文件的实现

我没有执行内存映射文件的问题。 问题是。 假设这返回一个有效的内存视图。

void* pBuf = MapViewOfFile(hMapFile, FILE_MAP_WRITE, 0, 0, 0); 

我有替代品使用memcpy给它的数据? 例如我可以告诉我的应用程序存储数据呢? 我真的想要像char * buffer = new char [1073741824],其中新的地方在内存映射文件中的数据。 这似乎合乎逻辑。 或者我将不得不写一个包装,使用memcpy写入内存视图? 那会让人失望。

Solutions Collecting From Web of "C ++内存映射文件的实现"

您可以使用placement new操作符,也可以将地址转换为您要使用的结构或类。 放置新的优点是将调用该类的构造函数。 如果您从那时起使用该指针,则不需要复制数据,而是直接读写数据。

可能最简单的方法是使用增强的内存映射文件类 ,这些类提供了便携的额外好处。