如何让显式加载失败如同隐式加载失败一样,获得系统所能给予的加载失败原因?
一般而言,隐式加载如果加载出错的话,系统都会给予提示。
例如 aaa.Exe隐式加载了bbb.dll, 而bbb.dll同样隐式加载了ccc.dll,如果ccc.dll在搜索路径上不能找到,那么运行aaa.Exe, 加载bbb.dll就会失败,系统会给予提示:
---------------------------
aaa.exe - 无法找到 DLL
--------------------------
无法找到动态链接库 ccc.dll 于指定的路径 C:\WINNT\system32;C:\WINNT\system;C:\WINNT; 上。
---------------------------
确定
---------------------------
而如果aaa.Exe显式加载了bbb.dll呢?那么,LoadLibrary 就会失败,使用GetLastError,得到错误代码126--找不到指定的模块,却无法获得如上的加载失败原因。这就让人一时摸不着头脑了....
我的问题就是:如何在显式加载失败时,使之类似隐式加载一般,报告出加载失败的具体原因?解决此问题也许只是一个API,也许是一大段代码,总之,烦请指教。
例如 aaa.Exe隐式加载了bbb.dll, 而bbb.dll同样隐式加载了ccc.dll,如果ccc.dll在搜索路径上不能找到,那么运行aaa.Exe, 加载bbb.dll就会失败,系统会给予提示:
---------------------------
aaa.exe - 无法找到 DLL
--------------------------
无法找到动态链接库 ccc.dll 于指定的路径 C:\WINNT\system32;C:\WINNT\system;C:\WINNT; 上。
---------------------------
确定
---------------------------
而如果aaa.Exe显式加载了bbb.dll呢?那么,LoadLibrary 就会失败,使用GetLastError,得到错误代码126--找不到指定的模块,却无法获得如上的加载失败原因。这就让人一时摸不着头脑了....
我的问题就是:如何在显式加载失败时,使之类似隐式加载一般,报告出加载失败的具体原因?解决此问题也许只是一个API,也许是一大段代码,总之,烦请指教。
...全文
相关推荐
Selenium (强制等待、隐式等待、显式等待)三类等待的作用
在实际使用中,根据具体情况,可以结合使用隐式等待和显式等待,通常设置一个较长的隐式等待作为基础,然后对关键元素使用显式等待以获得更精确的控制。
【C++动态库】DLL动态库加载失败导致程序启动报错以及DLL库加载失败的常见原因分析与总结
本文讲述dll动态库加载失败导致程序启动报错问题,以及dll库加载失败的常见原因分析与总结。
隐式调用dll和显式调用dll
然后,像调用本机函数一样调用DLL中的函数,例如`MyFunction()`。**显式调用DLL**显式调用则是在运行时动态地加载DLL并获取函数地址。这种方式更加灵活,但需要更多的代码来实现。
基于javascript 显式转换与隐式转换(详解)
如果转换失败,则结果为`NaN`。#### 字符串转数字的隐式转换在需要进行数值运算时,JavaScript会自动将字符串转换为数字。
Android使用Intent隐式实现页面跳转
Intent 主要有两种类型:显式 Intent 和隐式 Intent。显式 Intent 是指明确指定要启动的组件的名称,而隐式 Intent 则是通过指定要执行的操作来隐式地启动组件。


进程/线程/DLL

