调用MapViewOfFile时出错

时间:2013-10-12 20:53:51

标签: c++ winapi

我正在尝试使用需要DWORD的函数。

这些是规格:

  

dwFileOffsetHigh [in]

     

视图开始的文件偏移量的高阶DWORD。   dwFileOffsetLow [in]

     

视图要开始的文件偏移量的低阶DWORD。该   高偏移量和低偏移量的组合必须指定其中的偏移量   文件映射。它们还必须匹配内存分配   系统的粒度。也就是说,偏移量必须是倍数   分配粒度。获取内存分配   系统的粒度,使用填充的GetSystemInfo函数   在SYSTEM_INFO结构的成员中。

对于错误参数不正确的函数,该函数失败。

unsigned long lByteStart=200959959;
unsigned long lByteLen=66964224;

MapViewOfFile( *phMapping, FILE_MAP_READ, 0, lByteStart, lByteLen );

我不关心高,低或低,因为我不理解它,只是希望它能起作用。

既然它不起作用,有人可能会告诉我我做错了什么以及我需要做些什么来正确地做到这一点?

1 个答案:

答案 0 :(得分:3)

问题不在于高/低部分,你做得对。问题是“偏移量必须是分配粒度的倍数”。我不认为你是。

分配粒度的典型值是4096,尽管您应该检查系统中的内容,如引用所示。