//尝试打开 打开失败则创建
HANDLE h_tmp = OpenFileMappingA(FILE_MAP_ALL_ACCESS, FALSE, MEMMAPFILENAME);
if(NULL == h_tmp)
{
h_tmp = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(int), MEMMAPFILENAME);
}
int* value = (int*)MapViewOfFile(m_hMemMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
//每次操作完记得刷新共享内存
::FlushViewOfFile(value, sizeof(int));
//进程操作完共享内存释放掉
::UnmapViewOfFile((void *)value);
if (NULL != h_tmp)
{
::CloseHandle(h_tmp);
}
首先尝试打开,失败则创建
if(NULL == h_tmp)HANDLE h_tmp = OpenFileMappingA(FILE_MAP_ALL_ACCESS, FALSE, MEMMAPFILENAME);
{
h_tmp = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(int), MEMMAPFILENAME);
}
int* value = (int*)MapViewOfFile(m_hMemMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
每次操作完共享内存之后记得刷新内存进程操作完共享内存记得释放::FlushViewOfFile(value, sizeof(int));
::UnmapViewOfFile((void *)value); if (NULL != h_tmp)
{ ::CloseHandle(h_tmp);
}