createfilemapping 和 mapviewoffile怎么用?(20分)

  • 主题发起人 主题发起人 npuwsz0
  • 开始时间 开始时间
N

npuwsz0

Unregistered / Unconfirmed
GUEST, unregistred user!
请具体解释一下 各个参数的用法最好有事例解释
 
createfilemapping 用来建立内存映象文件,原型如下:
HANDLE CreateFileMapping(
HANDLE hFile, //文件句柄
LPSECURITY_ATTRIBUTES lpFileMappingAttributes, // 可选安全属性
DWORD flProtect, // 映象文件保护方式
DWORD dwMaximumSizeHigh, // 映象文件区域的底值
DWORD dwMaximumSizeLow, // 映象文件区域的顶值
LPCTSTR lpName // 映象文件的名字 );

mapviewoffile用来访问映象文件,该函数会返回一个指向共享内存块的特定指针。原型如下:
LPVOID MapViewOfFile(
HANDLE hFileMappingObject, // 映象文件句柄
DWORD dwDesiredAccess, // 访问方式
DWORD dwFileOffsetHigh, // 映象文件区域的底值
DWORD dwFileOffsetLow, // 映象文件区域的顶值
DWORD dwNumberOfBytesToMap // 映射字节数 );
其中如果 dwNumberOfBytesToMap 是0,表示映射整个文件。
 
如:
private
hMapFile: THandle;
MapFilePointer: Pointer;

hMapFile := CreateFileMapping ( $FFFFFFFF, nil, page_ReadWrite, 0,10000, 'DdhDemoMappedFile'); // 创建映象文件
if hMapFile <> 0 then
MapFilePointer := MapViewOfFile ( hMapFile, File_Map_All_Access, 0, 0, 0) // 访问整个映象文件
 
同意YB_unique:)
 
后退
顶部