// 文件映射-操作文件.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HANDLE hFile; // 文件句柄 HANDLE hMapFile; // 文件内存映射区域的句柄 LPVOID lpMapAddress; // 内在映射区域的起始位置 // 1. 创建一个文件 hFile = CreateFile(L"D:\1.exe", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (INVALID_HANDLE_VALUE == hFile) return FALSE; // 2. 创建文件映射 hMapFile = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, GetFileSize(hFile, NULL), NULL); if (NULL == hMapFile) return FALSE; // 3. 将文件映射View lpMapAddress = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0); if (NULL == lpMapAddress) return FALSE; // ...... *((char*)lpMapAddress) = 'O'; //... //... //... // 可以使用lpMapAddress进行一些操作 // ...... // 4. 将映射的数据写回到硬盘上 FlushViewOfFile(lpMapAddress, 0); // 5. 关闭mapping对象 if (!CloseHandle(hMapFile)) return FALSE; if (!CloseHandle(hFile)) return FALSE; return 0; }