Visual C ++ 6 MFC MapViewOfFile返回错误代码8

时间:2013-03-22 15:08:18

标签: c++ mfc vc6 pagefile file-mapping

我有一个正在创建地图文件的程序,它能够很好地调用m_hMap = CreateFileMapping(m_hFile,0,dwProtect,0,m_dwMapSize,NULL);,但是当后续函数调用MapViewOfFile(m_hMap,dwViewAccess,0,0,0)时,我得到的错误代码为8,这是ERROR_NOT_ENOUGH_MEMORY,或错误字符串"错误没有足够的存储空间来处理此命令"。

所以我并不完全理解MapViewOfFile为我做了什么,以及如何解决这个问题。

一些数字......

m_dwMapSize = 453427200
dwProtect = PAGE_READWRITE;
dwViewAccess = FILE_MAP_ALL_ACCESS;

我认为我的网页尺寸为65536

1 个答案:

答案 0 :(得分:1)

如果文件非常大并且要阅读,建议您以小块读取它,然后处理每个文件。 MapViewOfFile函数用于映射内存中的一块。

查看http://msdn.microsoft.com/en-us/library/windows/desktop/aa366761(v=vs.85).aspx需要偏移以正确完成其工作,即如果您想要分段读取非常大的文件。主要是由于碎片和相关原因,非常大的内存请求失败。

相关问题