标签:
HANDLE hMapFile=NULL;
LPBYTE lpMapAddress=NULL;
1.创建命名文件映射对象
hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE,//创建内存映射文件(不使用磁盘文件)
NULL,
PAGE_READWRITE,
0,
1024,//映射的内存区域大小
"FileMapping_A9279E4A75917E23C2A");
if(hMapFile==NULL)
{
TRACE("CreateFileMapping == NULL\n");
}
2.打开已经存在的命名文件映射对象
hMapFile = OpenFileMapping(
FILE_MAP_ALL_ACCESS,
FALSE,
"FileMapping_A9279E4A75917E23C2A");
if(hMapFile==NULL)
{
TRACE("OpenFileMapping == NULL\n");
}
3.获取映射的内存空间首址
lpMapAddress = (LPBYTE)MapViewOfFile(
hMapFile,// Handle to mapping object.
FILE_MAP_ALL_ACCESS,// Read/write permission.
0,// high-order DWORD of offset.
0,// low-order DWORD of offset.
1024);// number of bytes to map.
if (lpMapAddress==NULL)
{
TRACE("MapViewOfFile == NULL\n");
}
4.使用:此时可以使用memset,memcpy等函数对这片内存进行操作
...;
5.使用完之后的释放
if (lpMapAddress!=NULL)
{
UnmapViewOfFile(lpMapAddress);
}
if (hMapFile!=NULL)
{
CloseHandle(hMapFile);
}
用文件映射(File Mapping)实现进程间内存共享
标签:
原文地址:http://www.cnblogs.com/dgx/p/5491562.html