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

C++ C++;内存映射文件实现,c++,windows,C++,Windows,实现内存映射文件没有问题。问题是。假设它返回一个有效的内存视图 void* pBuf = MapViewOfFile(hMapFile, FILE_MAP_WRITE, 0, 0, 0); 除了使用memcpy向其提供数据,我还有其他选择吗?例如,我可以告诉我的应用程序在其中存储数据吗?我真的想要像char*buffer=new char[1073741824]这样的东西,新的

实现内存映射文件没有问题。问题是。假设它返回一个有效的内存视图

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

除了使用memcpy向其提供数据,我还有其他选择吗?例如,我可以告诉我的应用程序在其中存储数据吗?我真的想要像char*buffer=new char[1073741824]这样的东西,新的字符将数据放在内存映射文件中。这似乎合乎逻辑。或者我必须使用memcpy编写一个写入内存视图的包装器吗?那将是令人失望的

最简单的方法可能是使用,它提供了可移植的额外好处。

您可以使用运算符,也可以将地址强制转换为要使用的结构或类。placement new的优点是将调用类的构造函数。如果您在该指针上使用“从那时起”,则不需要复制数据,而是直接对其进行读写。

请不要在问题中写入答案-我还原了您的编辑。如果你想回答这个问题,那么作为回答。当然,这样做没有意义,因为您有一个答案与您的解决方案相同。最佳答案。和我的结论一样。此外,它是最有效和最不臃肿。