您的位置:首页 > 编程语言 > C语言/C++

c++共享内存操作实例

2012-03-21 22:42 489 查看
1、创建共享内存

HANDLE hMapping;

LPTRANSDATA lpData; //要发送的结构体

hMapping = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,1024,SHAREMEM_CMD_SEND);

if (hMapping != NULL)

{

lpData = (LPTRANSDATA)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);

if (lpData == NULL)

{

CloseHandle(hMapping);

hMapping = NULL;

AfxMessageBox("MapViewOfFile() failed.");

return;

}

}

else

{

AfxMessageBox("CreateFileMapping() failed.");

return;

}

CopyMemory(lpData,lpMsg,sizeof(LPTRANSDATA));

2、打开创建的映射文件

HANDLE hMapping;

hMapping = OpenFileMapping(FILE_MAP_READ,FALSE,SHAREMEM_CMD_SEND);

if (hMapping == NULL)

{

MessageBox("hMapping == NULL");

return NULL;

}

transData = (LPTRANSDATA)MapViewOfFile(hMapping,FILE_MAP_READ,0,0,0);

if (transData == NULL)

{

CloseHandle(hMapping);

MessageBox("str == NULL");

return NULL;

}

if (transData != NULL)

{

UnmapViewOfFile(transData );

transData = NULL;

}

if (hMapping != NULL)

{

CloseHandle(hMapping);

hMapping = NULL;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: