16,550
社区成员
发帖
与我相关
我的任务
分享
HANDLE hFile = CreateFile("media.mp3",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("invalid handle value\n");
}
DWORD fileSize = GetFileSize(hFile,NULL);
printf("file size is: %d GB",((fileSize/1024)/1024)/1024);
HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,
0,fileSize + sizeof(char),NULL);
if (hFileMap == NULL)
{
printf("create file mapping object failed.\n");
}
else
{
DWORD dwNumberOfBytesToMap = 1024 * 64 * 1024 * 10;
DWORD dwNum = 0;
DWORD offset = 0;
while (fileSize)
{
dwNum = dwNumberOfBytesToMap > fileSize? fileSize : dwNumberOfBytesToMap;
LPVOID pvFile = MapViewOfFile(hFileMap,FILE_MAP_WRITE,offset>>32,offset&0xffffffff,dwNum);
if (pvFile == NULL)
{
printf("create map view of file is failed, error code is :%d",GetLastError());
}
else
{
fileSize -= dwNum;
offset += dwNum;
PSTR pchAnsi = (PSTR)pvFile;
// pchAnsi[dwNum/sizeof(char)] = 0;
//_strrev(pchAnsi);
UnmapViewOfFile(pvFile);
}
}
CloseHandle(hFileMap);
}
CloseHandle(hFile);