简明扼要:
1.创建:
HANDLE hFileMapping = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1024, _T("XXXX"));//1024是文件大小,请自定义
2.写入:
HANDLE hFileMapping1 = OpenFileMapping(FILE_MAP_WRITE, FALSE, _T("XXXX")); void *pMapView = MapViewOfFile(hFileMapping1, FILE_MAP_WRITE, 0, 0, 1024);//1024对应"创建" memset(pMapView,0,1024) ; memcpy(pMapView,(LPCTSTR)szEdit,1024) ; UnmapViewOfFile(pMapView);//在当前应用程序的内存地址空间解除对一个文件映射对象的映射,这个地址是早先用MapViewOfFile函数获得的
3.读取:
HANDLE hFileMapping = OpenFileMapping(FILE_MAP_READ, FALSE, _T("XXXX")); void *pMapView = MapViewOfFile(hFileMapping, FILE_MAP_READ, 0, 0, 1024);/*将一个文件映射对象映射到当前应用程序的地址空间,返回值:Long,文件映射在内存中的起始地址*/ CString szEdit ; szEdit =(LPCTSTR) pMapView ; SetDlgItemText(IDC_EDIT1,szEdit); UnmapViewOfFile(pMapView);/*在当前应用程序的内存地址空间解除对一个文件映射对象的映射,这个地址是早先用MapViewOfFile函数获得的*/
4.释放:HANDLE hFileMapping = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, _T("XXXX")); // 关闭共享内存 if (hFileMapping != NULL) CloseHandle(hFileMapping);
返回失败可用GetLastError 得到,具体可查MSDN
posted on 2010-11-15 15:45 hgy413 阅读(231) 评论(0) 编辑 收藏 举报
Powered by: 博客园 Copyright © 2024 hgy413 Powered by .NET 9.0 on Kubernetes