GetLastError()返回ERROR_MOD_NOT_FOUND后如何获取缺少的DLL名称

时间:2011-10-05 12:25:50

标签: windows winapi

我的应用程序使用LoadLibrary()加载DLL来抑制标准的关键错误处理程序消息框。当LoadLibrary()失败并且GetLastError()返回ERROR_MOD_NOT_FOUND(0x7E)时,我想要检索丢失的DLL名称。此错误代码不仅在请求的DLL丢失时设置,而且在缺少任何依赖的DLL时

值得注意的是,标准消息框(被禁止)显示正确缺失的DLL名称,问题是如何在代码中获取它。

由于

2 个答案:

答案 0 :(得分:1)

我不确定是否有一种简单的方法来获取丢失的DLL的名称。但是你可以通过在调试器中单步执行LoadLibrary()并查看哪个函数在参数中使用什么文件名失败来找到它。 depends.exe也可以显示依赖项。

此外,尝试启动进程监视器并使用适当的过滤器可以查看进程中的I / O错误以及哪些文件。

答案 1 :(得分:1)

如果您使用DLL名称调用LoadLibrary,您是否应该知道名称?

如果情况并非如此,您可以随时尝试hooking LoadLibrary。