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

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

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

谢谢

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

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

点赞