69,369
社区成员
发帖
与我相关
我的任务
分享
#define MAX_SHM_BUF_LEN 4 * 1024
DWORD dwErr = 0;
HANDLE hMapFile = NULL;
void *pBaseMapFile = NULL;
hMapFile = CreateFileMapping( (HANDLE)0xFFFFFFFF,
NULL,
PAGE_READWRITE,
0,
MAX_SHM_BUF_LEN,
"DHOME_DB");
SYSTEM_INFO sinf;
GetSystemInfo(&sinf);
DWORD dwAllocationGranularity = sinf.dwAllocationGranularity;
DWORD size = (MAX_SHM_BUF_LEN/dwAllocationGranularity+1)*dwAllocationGranularity;
pBaseMapFile = MapViewOfFileEx(hMapFile,
FILE_MAP_READ ¦FILE_MAP_WRITE,
0,
size ,
0,
0x00bb0000);
dwErr = GetLastError();
return pBaseMapFile;
m_hMapObject = CreateFileMapping((HANDLE)0xFFFFFFFF, //(无效句柄)表明与文件无关
NULL, //安全权限
PAGE_READWRITE,//读写权限
0,//最小值
0x1000,//最大值
_TEXT("MySharedMemory"));//映射名称
if(!m_hMapObject)
{
// AfxMessageBox("不能创建共享内存");
return FALSE;
}
m_pszMapView = (LPSTR)MapViewOfFile(m_hMapObject,//内存映射的句柄
FILE_MAP_WRITE,//权限
0, 0, 0);
if(!m_pszMapView)
{
// AfxMessageBox("不能映射共享内存");
return FALSE;
}