HANDLE hFile; //文件句柄 HANDLE hMapping; //文件映射句柄 LPVOID lpHeadBase; //创建映射的头指针 DWORD dwFileSize; //文件大小 DWORD dwBufferRead; //实际读取字节 //打开文件 hFile=CreateFile("C://windows//system32//notepad.exe",GENERIC_READ,FILE_SHARE_READ,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile==INVALID_HANDLE_VALUE) { MessageBox("打开文件失败!","错误提示",MB_OK); return; } //获取文件大小 dwFileSize=GetFileSize(hFile,NULL); //创建文件映射 hMapping=CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL); if (hMapping==NULL) { MessageBox("创建文件映射失败!","错误提示",MB_OK); CloseHandle(hFile); //关闭创建的文件句柄 return; } //将文件映射对象映射到当前应用程序的地址空间中 lpHeadBase=MapViewOfFile(hMapping,FILE_MAP_READ,0,0,0); if (lpHeadBase==NULL) { MessageBox("文件映射地址失败!","错误提示",MB_OK); CloseHandle(hMapping); //关闭映射句柄 CloseHandle(hFile); //关闭文件句柄 return; } //打开新的文件 hFile=CreateFile("C://notepad.exe",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); if (hFile==INVALID_HANDLE_VALUE) { MessageBox("生成文件失败!","错误提示!",MB_OK); return; } //写入文件 if (!WriteFile(hFile,lpHeadBase,dwFileSize,&dwBufferRead,NULL)) { MessageBox("写入文件失败!","错误提示!",MB_OK); //卸载文件映射,关闭文件句柄 UnmapViewOfFile(lpHeadBase); CloseHandle(hMapping); CloseHandle(hFile); return; } //卸载文件映射,关闭文件句柄 UnmapViewOfFile(lpHeadBase); CloseHandle(hMapping); CloseHandle(hFile); MessageBox("创建文件成功!","成功提示",MB_OK);