码迷,mamicode.com
首页 > Windows程序 > 详细

win32进程间通讯--共享内存

时间:2016-03-01 22:35:48      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

小白一枚,如有不对,请各位大神多多指教!

最近看了看win32进程间通讯。简单写了写利用共享内存实现进程间通讯

使用共享内存实现进程间通讯:

1.在WM_CREATE消息下创建文件映射内核对象

  

1 hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, BUF_SIZE, (LPCWSTR)szName);

 

2.在需要进行数据共享的地方映射缓存区视图,将要写入的数据放入pbuf

1 pBuf = (char *)MapViewOfFile(
2                 hMapFile,
3                 FILE_MAP_ALL_ACCESS,
4                 0,
5                 0,
6                 BUF_SIZE-1);
7 GetWindowText(hEdit2, (LPWSTR)szSend, BUF_SIZE);                
8 strncpy(pBuf, szSend, BUF_SIZE-1);
9 pBuf[BUF_SIZE - 1] = \0;

 

3.当用户进程结束使用共享内存后,调用UnmapViewOfFile函数以取消其地址空间内的视图(可以再WM_DESTROY中进行设置)

1 if(hMapFile){
2   UnmapViewOfFile(pBuf);
3   CloseHandle(hMapFile);
4 }

 

win32进程间通讯--共享内存

标签:

原文地址:http://www.cnblogs.com/insist-novel/p/5232689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!