我有一个 dll “mytest.dll”,当通过 加载时LoadLibrary()
,返回 NULL(和 127 作为GetLastError()
)。如果我在“mytest.dll”上使用 DependencyWalker,它会报告它应该正确加载并且正确找到所有 DLL。在主机 exe 上运行 DependencyWalker 的探查器选项会在日志中为我提供以下相关部分:
00:00:55.099:由线程 0xBBC 在地址 0x07860000 加载“mytest.DLL”。成功挂接模块。 00:00:55.115:线程 0xBBC 在地址 0x76E24285 的“NTDLL.DLL”中发生第一次机会异常 0xC0000139(未找到 DLL)。 00:00:55.115:线程 0xBBC 在地址 0x07860000 处卸载了“mytest.DLL”。 00:00:55.115:LoadLibraryW("mytest.dll") 由线程 0xBBC 返回 NULL。错误:找不到指定的过程 (127)。
有没有办法调试它以找出 NTDLL.DLL 报告的 DLL Not Found 消息试图寻找什么?还是我应该在别处寻找问题的根源?
请注意,从另一个应用程序加载相同的“mytest.DLL”似乎可以正常工作。