C ++内存映射文件实现

时间:2011-09-12 08:18:36

标签: c++ windows

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

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

我有替代方法使用memcpy为其提供数据吗?例如,我可以告诉我的应用程序存储数据吗?我真的想要像char * buffer = new char [1073741824],其中new将数据放在内存映射文件中。这看似合乎逻辑。或者我是否必须编写一个使用memcpy写入内存视图的包装器?这将是令人失望的。

2 个答案:

答案 0 :(得分:3)

最简单的方法可能是使用boost memory mapped file classes,这样可以提供便携的额外好处。

答案 1 :(得分:0)

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

相关问题