2011-09-12 67 views
2

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

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

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

+0

请不要在问题中写下答案 - 我已恢复编辑。如果你想回答这个问题,那就这样做。当然,这样做没有意义,因为您有一个答案与您的解决方案相同。 –

回答

0

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

+0

最佳答案。和我一样的结论。加上它是最有效和最不臃肿的。 – user936509