分享

VC 6.0共享内存技术总结 - 瀚海逍遥 - 博客大巴

 ShaneWu 2009-10-13

VC++6.0共享内存技术总结

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://feizf./logs/17056014.html

VC++6.0共享内存技术总结

程序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);

closefile(m_hMapFile);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多