两个进程如何在.net中共享一个dll?

时间:2015-04-13 06:16:22

标签: .net dll activex-exe

我们有一个VB6.0 ActiveX.exe,它从同一进程的2个不同实例获取数据,即我的activex.exe在其自己的内存中运行,并且能够从其父进程获取数据。

当ActiveX.exe迁移到VS 2008时,ActiveX.exe失去了在自己的进程中运行的能力。结果,它获得了父进程实例的本地。

他们可以使用多个父进程可以使用的单个dll吗?

1 个答案:

答案 0 :(得分:0)

如果由多个进程加载,Windows加载程序将自动使用DLL的一个内存中物理副本。您无需执行此操作。

如果要跨进程共享数据,则需要使用正常的进程间通信机制,例如可以正确保护的管道,套接字,文件,共享内存段等。

(以前,程序在PE文件中创建共享可写内存段并尝试以这种方式共享数据有点常见;但这允许任何可以加载DLL的用户(在功能上都是所有这些)只需通过加载有问题的DLL来加载数据....)