我们知道对于WIN32的机器,每个进程的虚拟内存空间是4G,其中有2G用作整个系统的共享内存,也就是说,对于不同的进程,这2G的内容都是一样的。那么能否在这2G内存中开辟出一个区间,专门拿来在我的两个程序之间作通讯使用呢?
一个程序把一个对象放到共享内存里,另一个程序直接使用——这不是非常方便吗?
这是今天跟同事讨论问题时,忽然想到的,还没验证过,先上来问问高手的意见。

解决方案 »

  1.   

    是的,这样是可以的 Windows95中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在WIN32进程中保留一段内存区域,把目标文件映射到这段虚拟内存中。在程序实现中必须考虑各进程之间的同步。具体实现步骤如下: 
    http://www.legalsoft.com.cn/Articles/ArticleBrowse.asp?idArticle=372
      

  2.   

    所有的进程通信就是用的这个原理了。反正在不同的进程中,最后都直向同一个页,所以实现了进程通信。如果是 对象那么差不多就是COM的原理。
      

  3.   

    多谢,问多几句:在别的系统里,也有类似的功能吗?如linux,java jvm等。