1) win32中每个进程是不知道其他进程的存在。自己独占4GB的进程空间。
2)dll和进程融为一体,每个进程有自己的一份copy.
3) 两个进程的中handle一样,并不代表他们一样。他们是不一样的。
4) 实现两个应用程序之间的数据交换的方法。
a, WM_COPYDATA
b, 存储映像文件。
c. DDE
d, 分配内存用SHARE_MEM标志,我没有用过

解决方案 »

  1.   

    致kxy:
        如你所说win32中每个进程是不知道其他进程的存在,自己独占4GB的进程空间。但是我是在DLL的初始化代码中定义的全局内存块handle,按道理说内存块在用gmem_DDEShare属性进行分配以后,这样的内存块直到被DLL显示释放或DLL退出都应该保持有效.我就是根据这一点来进行数据传输的.对此你有何高见?
        另外,对于实现两个应用程序之间的数据交换的方法你是否能给我明示一下何处有相关的源代码例子,不胜感激!
      

  2.   

    请你参照windows 编程的经典<<advanced windows>>,
    如果使用C语言的话,可以在设计dll的源代码中加入,共享数据区的定义,并且
    加上相应的progrma定义。这本书中还有其它的方法可以参照。你可以看一下!!
    祝你好运
      

  3.   

    不妨试一下多线程,一个线程读,一个线程写.或采用Timer
      

  4.   

    呵呵,如果你的DLL不用来完成其他功能,用它交换数据真不划算