我有一个由第三方生成的 dll,它具有某种内部数据结构,将其大小限制为 X 个元素。
所以基本上,它有一个以 X 为限制的队列。
据我所知,DLL 是每个进程的,但是是否可以多次加载 DLL?也许每个线程?在 C# 中?还是在 C++/CLI 中?
我正在尝试加载 native C++ dll。
最佳答案
不幸的是,NT核心DLL loader routines不要公开公共(public)接口(interface)以跳过已加载的 DLL 池。因此,您只有几个选择:
- 复制、硬链接(hard link)、符号链接(symbolic link)和/或使用重解析点来欺骗加载器,让其认为您有多个不同的 DLL。
- 使用多个进程,每个进程加载一个 DLL。
- 编写一个新的 DLL 加载程序(非常不适合胆小的人!)
- 说服 DLL 的供应商修复它(可能比编写 DLL 加载程序更难:)
关于c++ - 在同一进程中加载多个 dll 拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1587176/