我们有一个VB6.0 ActiveX.exe,它从同一进程的2个不同实例获取数据,即我的activex.exe在其自己的内存中运行,并且能够从其父进程获取数据。
当ActiveX.exe迁移到VS 2008时,ActiveX.exe失去了在自己的进程中运行的能力。结果,它获得了父进程实例的本地。
他们可以使用多个父进程可以使用的单个dll吗?
答案 0 :(得分:0)
如果由多个进程加载,Windows加载程序将自动使用DLL的一个内存中物理副本。您无需执行此操作。
如果要跨进程共享数据,则需要使用正常的进程间通信机制,例如可以正确保护的管道,套接字,文件,共享内存段等。
(以前,程序在PE文件中创建共享可写内存段并尝试以这种方式共享数据有点常见;但这允许任何可以加载DLL的用户(在功能上都是所有这些)只需通过加载有问题的DLL来加载数据....)