我的应用程序使用LoadLibrary()
加载DLL来抑制标准的关键错误处理程序消息框。当LoadLibrary()
失败并且GetLastError()
返回ERROR_MOD_NOT_FOUND(0x7E)时,我想要检索丢失的DLL名称。此错误代码不仅在请求的DLL丢失时设置,而且在缺少任何依赖的DLL时。
值得注意的是,标准消息框(被禁止)显示正确缺失的DLL名称,问题是如何在代码中获取它。
由于
答案 0 :(得分:1)
我不确定是否有一种简单的方法来获取丢失的DLL的名称。但是你可以通过在调试器中单步执行LoadLibrary()并查看哪个函数在参数中使用什么文件名失败来找到它。 depends.exe也可以显示依赖项。
此外,尝试启动进程监视器并使用适当的过滤器可以查看进程中的I / O错误以及哪些文件。
答案 1 :(得分:1)
如果您使用DLL名称调用LoadLibrary,您是否应该知道名称?
如果情况并非如此,您可以随时尝试hooking LoadLibrary。