数据写入与读取问题?
hFileMap=CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,4*1024,TEXT("share"));
if(hFileMap!=NULL)
{
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
MessageBox(hWnd,TEXT("不能创建文件,文件已存在"),TEXT("ERROR"),MB_OK);
}
else
{
PVOID pView=MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS,0,0,0);
if(pView)
{CloseHandle(hFileMap);
TCHAR abc[6]={'s','d','f','s','f','\0'};
CopyMemory(pView,abc,_countof(abc));
/* 1 */ MessageBox(hWnd,(LPCWSTR)pView,TEXT("sdfs"),MB_OK);
/* 2 */TextOut(GetDC(hWnd),100,100,(LPCWSTR)pView,5);
UnmapViewOfFile(pView);
}
}
}
问题有两个:1.我在注释1的那行上面明明复制了10个字符,为什么这里只显示前3个.
问题2:LPCWSTR 类型的内存块用什么函数计算大小?同类问题如 TEXT("sfsdfsf"),用什么计算大小?
在线等,高手们给讲解下吧!
[解决办法]
处理大文件,偶只用_lseeki64!