- 注册时间
- 2010-8-21
- 最后登录
- 2017-5-28
- 在线时间
- 4 小时
编程入门
- 魔鬼币
- 598
|
程序1 -- 建立共享区:- HANDLE m_hMapFile=CreateFileMapping( //创建一个有名的共享内存
- (HANDLE)0xFFFFFFFF, //0xFFFFFFFF表示创建一个进程间共享的对象
- NULL,
- PAGE_READWRITE, //读写共享
- 0,
- 0x1000, //共享区间大小4096
- "myfile");
-
- 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;
复制代码 程序2 -- 使用共享区- HANDLE m_hMapFile =OpenFileMapping( //获得共享内存句柄
- FILE_MAP_WRITE,
- FALSE,
- "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);
- p[0]=33;
- p[1]=44; //修改共享区
-
- 取消本进程地址空间的映射:
- UnmapViewOfFile(m_pBaseMapFile);
复制代码 |
|