如何让显式加载失败如同隐式加载失败一样,获得系统所能给予的加载失败原因?
一般而言,隐式加载如果加载出错的话,系统都会给予提示。
例如 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,也许是一大段代码,总之,烦请指教。