我正在尝试写入(共享)命名文件映射对象,如下所示:
//ENTER CRITICAL SECTION FIRST
int ncbSzMapping = 0x92B8; //Size of a shared struct
hFileMapping = CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE,
NULL, PAGE_READWRITE,
0, ncbSzMapping,
_T("mapping_name"));
if(hFileMapping)
{
BYTE* pRWData = MapViewOfFile(hFileMapping,
FILE_MAP_ALL_ACCESS, 0, 0, ncbSzMapping);
if(pRWData)
{
//Write data into 'pRWData' of 'ncbSzMapping' bytes
UnmapViewOfFile(pRWData);
}
}
...
//LEAVE CRITICAL SECTION
上面的代码没有问题。但是当我将上面的代码更改为ncbSzMapping
成功0x8A8B8
但后来在代码中我得到一个异常 c00000fd 就在一个对我没有意义的函数调用之前。
知道为什么尺寸增加会产生影响以及如何解决它吗?