我从书上抄了一段文件映射的代码。但在使用中出了点问题。
当映射文件较小时(60-70MB),代码能正常运行。
当映射文件较大时(600-700MB)时,::MapViewOfFile返回值就为NULL,是不是我什么地方数据类型用错了或还要加用什么函数吗?
谢谢了先!
HANDLE hFile=::CreateFile(strFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,NULL);if(hFile==INVALID_HANDLE_VALUE)
{
MessageBox(hwnd,"\n\n打开文件错误!\n\n",NULL,MB_OK);
return;
}HANDLE hMap=::CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL);
if(hMap==NULL)
{
MessageBox(hwnd,"\n\n映射文件错误!\n\n",NULL,MB_OK);
CloseHandle(hFile);
return;
}LPVOID lpvFile=::MapViewOfFile(hMap,FILE_MAP_READ,0,0,0);
if(lpvFile==NULL)
{
MessageBox(hwnd,"\n\n映射文件错误!\n\n",NULL,MB_OK);
return;
}