多次加载同一个dll

2021-12-17 00:00:00 process dll winapi c++ loadlibrary

我想加载相同的 dll,例如Lib.dll 多次!

I want to load the same dll e.g. Lib.dll multiple times!

-> 需要为每个 LoadLibrary 创建一个新进程(CreateProcess 函数)!

-> need creating a new process (CreateProcess function) for every LoadLibrary!

有人有例子或一些提示吗?!

Anyone have an example or some hints?!

谢谢和问候

推荐答案

听起来您希望 DLL 的每个实例都有单独的数据段.这是我能想到的唯一原因.

It sounds like you want each instance of the DLL to have separate data segments. That's the only reason I can think of for the question.

实现此目的的唯一方法是确保每次调用 LoadLibrary 时,DLL 都具有不同的文件名.每次需要加载 DLL 时,将其复制到一个临时文件中,确保您使用的名称与 DLL 的任何加载实例不同.

The only way to achieve this is to make sure that each time you call LoadLibrary, the DLL has a different filename. Copy the DLL to a temporary file each time you need to load it, making sure that the name you use is different from any loaded instance of the DLL.

我赞同上面鼓励您重新设计系统架构的评论.

I echo the comments above that encourage you to re-design the system architecture.

相关文章