除了这个没有别的办法了吗?用我上面的共享数据段,没有办法在32位和64位的ime之间实现数据共享吗?

解决方案 »

  1.   

    除了这个没有别的办法了吗?用我上面的共享数据段,没有办法在32位和64位的ime之间实现数据共享吗?这个共享数据段和32位 64位有关系吗? 这个只是告诉进程加载器将该段数据放入一个named data section而已,而有相同named data section的进程可以和有相同named filemapping一样共享。最多你需要注意32bit 和 64bit代码访问的某些基本数据结构大小不一样,特别是32位访问的共享数据必须兼容64位的数据类型。
      

  2.   

    共享数据段是同一个映像(dll或exe等)在不同进程内有相同的虚拟地址和内容,32位的dll和它对应的64位dll本质上是两个dll,除了在开发者心目中之外,两者没有任何事实上的对应关系,因此无法共享数据段。
      

  3.   

    感谢!那就是说,32位和64位的两个DLL,如果要共享数据,只能用内存映射文件?是吗?两个dll是不同的,又位于不同的进程之间。这个命题等同于进程间通信