场景说明
将断点定位在上面的HMODULE instance = ::LoadLibrary(filename.c_str());函数,当加载test.dll的时候,发现句柄为空,然后通过添加如下代码:DWORD dwError = GetLastError();
在该函数的背后,收集到加载失败的错误码:〖127〗–找不到指定的程序。点击VS菜单,然后选择工具,点击错误查找,输入127。
解决分析:
1) 一般的情况是程序采用了动态加载的方式来运行,在加载DLL的过程,发现程序需要调用的函数在DLL中无法找到,从而引发错误。
2) 从这里可以看出是某一个方法在DLL中被修改,但是在调用的时候,通过头文件记录的又不是这么回事。