我有A.DLL
和B.DLL
使用 VS 2010,我在A.DLL
项目的 C++ 函数中设置断点,并使用procexp.exe查看当前加载的 DLL。很明显,A.DLL
是加载的。
我需要B.DLL
从这个函数调用。注意:B.DLL
对A.DLL
. 这个库被称为A.LIB
使用LoadLibrary
,我执行以下语句:
HANDLE hLib = LoadLibrary("B.DLL");
执行完这一行后,我再次查看procexp.exe。A.DLL
加载了两次!!如果我删除对 的A.LIB
依赖B.DLL
,这将不会发生。Process Explorer 报告这两个实例A.DLL
具有不同的基地址,因此它们实际上是不同的模块。
我的问题是为什么这会加载另一个实例A.DLL
?它是否有可能实现A.DLL
已经加载?