VC进程间共享内存的实现步骤
2017-12-25 10:57
337 查看
李国帅 编2007年9月
程序1 -- 建立共享区:
HANDLE m_hMapFile=CreateFileMapping( //创建一个有名的共享内存 (HANDLE)0xFFFFFFFF, //0xFFFFFFFF表示创建一个进程间共享的对象 NULL, PAGE_READWRITE, //读写共享 0, 0x1000, //共享区间大小4096 _T("ShareName")); void* m_pBaseMapFile=MapViewOfFile( //映射到本进程的地址空间 m_hMapFile, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0); unsigned char *p=(unsigned char*)m_pBaseMapFile; //使用共享区 p[0]=00; p[1]=11; p[2]=22; system(("pause")); UnmapViewOfFile(m_pBaseMapFile); //取消本进程地址空间的映射: CloseHandle(m_hMapFile); |
程序2 -- 使用共享区:
HANDLE m_hMapFile =OpenFileMapping( //获得共享内存句柄 FILE_MAP_WRITE, FALSE, _T("myfile")); void *m_pBaseMapFile=MapViewOfFile( //映射到本进程的地址空间 m_hMapFile, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0); unsigned char *p=(unsigned char*)m_pBaseMapFile; // CString s;// s.Format("%#x: %d, %d, %d",p,p[0],p[1],p[2]); AfxMessageBox(s); wstring s; std::ostringstream oss; oss<<p<<p[0]<<p[1]<<p[2]<<_T("\n");s=oss.str();cout>>s;//使用共享区 p[0]=33; p[1]=44; //修改共享区 system(("pause")); UnmapViewOfFile(m_pBaseMapFile); //取消本进程地址空间的映射: CloseHandle(m_hMapFile); |
相关文章推荐
- VC共享内存实现进程间数据的交换
- VC共享内存实现进程间数据的交换
- VC 共享内存实现进程间大数据的交换
- VC 共享内存实现进程间大数据的交换
- VC共享内存实现进程间数据的交换
- 在VC++ 6.0下利用共享内存、消息实现内部进程通讯
- VC中进程间共享内存实现
- [转载]共享内存实现进程间大数据的交换(VC)
- VC 共享内存实现进程间大数据的交换
- 进程间通讯----消息队列和共享内存方式的实现
- 单台服务器的PHP进程之间实现共享内存的方法
- 共享内存多进程间通信,进程间同步使用信号量来实现
- 通过共享内存,利用循环队列实现两个进程A,B之间的通信
- 通过共享内存,实现两个进程A,B之间的通信
- linux下的多进程通信(IPC)原理及实现方案(管道、队列、信号量、共享内存)
- UNIX环境高级编程学习之第十五章进程间通信 - 两个进程通过映射普通文件实现共享内存通信
- linux进程内存共享---实现生产者消费者问题
- 共享内存实现进程间大数据的交换
- linux_c语言实现父子进程共享内存
- Linux下通过共享内存进行进程间通信,进程间同步使用信号量来实现