内存映射文件

2018-05-11  本文已影响0人  7bfedbe4863a
创建内存映射文件 CreateFileMapping
HANDLE CreateFileMapping(
  HANDLE hFile,                       //物理文件句柄
  LPSECURITY_ATTRIBUTES lpAttributes, //安全属性
  DWORD flProtect,                    //保护设置
  DWORD dwMaximumSizeHigh,            //高位文件大小
  DWORD dwMaximumSizeLow,             //低位文件大小
  LPCTSTR lpName                      //共享内存名称
);
   HANDLE hMap = CreateFileMapping( hFile, NULL, PAGE_READWRITE, 0,1024*1024,TEXT("ZJ"));
加载内存映射文件 MapViewOfFile :映射成内存地址
MapViewOfFile(
    __in HANDLE hFileMappingObject,  //共享文件对象
    __in DWORD dwDesiredAccess,   //文件共享属性
    __in DWORD dwFileOffsetHigh,  //文件共享区的偏移地址
    __in DWORD dwFileOffsetLow,  //文件共享区的偏移地址
    __in SIZE_T dwNumberOfBytesToMap  //共享数据长度
    );
    CHAR* pszText=NULL; //一个指针,不需要分配空间
    pszText = (CHAR*)MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,1024*1024); //通过映射后,该指针就指向该文件。
卸载映射 UnmapViewOfFile
BOOL WINAPI UnmapViewOfFile(_In_LPCVOID lpBaseAddress);
UnmapViewOfFile((LPCVOID)pszText);
上一篇 下一篇

猜你喜欢

热点阅读