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