我想多次加载同一个dll,例如Lib.dll!
-> 需要为每个LoadLibrary创建一个新进程(CreateProcess函数)!
有人有示例或一些提示吗?!
谢谢并问候。
-> 需要为每个LoadLibrary创建一个新进程(CreateProcess函数)!
有人有示例或一些提示吗?!
谢谢并问候。
听起来你想让每个DLL实例拥有独立的数据段。这是我能想到的唯一原因。
唯一的方法是确保每次调用LoadLibrary
时,DLL都有不同的文件名。每次需要加载它时,将DLL复制到临时文件中,确保使用的名称与已加载的DLL实例不同。
我赞同上面的评论,鼓励你重新设计系统架构。
您正在将 DLL 视为对象实例进行处理。这完全不是 DLL 的工作方式。DLL 不是对象,它们是一堆代码和资源。无论您理论上加载 DLL 多少次,这些东西都不会改变。因此,在同一进程中加载多个 DLL 实例没有任何意义。
这是全局变量往往不是一个好主意的一个很好的例子。数据需要能够根据需要进行实例化。
因此,如果您需要使用多个对象实例进行工作,则应设计 DLL 来实现这一点。正如其他人所说,可以使用某种会话或只是可以在需要时实例化的对象。
这是对抽象问题的抽象回答。如果您能更详细地解释这个 DLL 究竟是做什么的,以及为什么需要多个实例,那将非常有帮助。