MFC进程通信(内存共享)

Z_Jchen 2017-10-23 08:47:39
void CReceiverDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HANDLE hMapFile;
LPCTSTR pBuf;
// 创建文件映射对象
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // 使用页文件
NULL,
PAGE_READWRITE, // 可读写
0,
BUF_SIZE, // 文件映射对象的大小
szName); // 文件映射对象的名字
if (hMapFile == NULL)
{
MessageBox((LPCTSTR)GetLastError(),"Could not create file mapping object (%d).\n"
);
}
// 将指定的文件视图映射到调用进程的地址空间,得到的pBuf地址就是共享内存的开始地址,共享内存的大小为BUF_SIZE
pBuf = (LPTSTR)MapViewOfFile(hMapFile, // 映射对象的句柄
FILE_MAP_ALL_ACCESS, // 可读写
0,
0,
BUF_SIZE);
if (pBuf == NULL)
{
MessageBox((LPCTSTR)GetLastError(), "Could not map view of file (%d).\n"
);
}

// 向共享内存中写入数据
CopyMemory((PVOID)pBuf, szMsg, strlen(szMsg));
// 等待其他进程从共享内存中读取数据
// 从调用进程的地址空间中解除文件视图的映射
UnmapViewOfFile(pBuf);
// 关闭映射对象的句柄
CloseHandle(hMapFile);
}


红线处引发断点,怎么解决哇?
...全文
784 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
大尾巴猫 2017-10-23
  • 打赏
  • 举报
回复
A进程:CreateFileMapping, MapViewOfFile B进程:OpenFileMapping , MapViewOfFile

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧