C技巧(使用控制台程序测试DLL依赖)
使用VC 6.0的Depends工具打开DLL可以让你知道DLL依赖于哪些DLL。但是,很多时候,DLL加载失败是间接的。例如,a.dll依赖b.dll、c.dll和d.dll。您当前的目录中有b.dll、c.dll和d.dll,但是加载a.dll是失败的。为什么?原因是DLLs、DLLs和DLLs中的一个或多个加载失败,所以你必须使用依赖工具来打开DLLs、DLLs和DLLs,以查看它们依赖于哪些dll。大测试提示:这样做会让你感到疲惫和低效。有没有简单的方法?我想到的一个方法是使用控制台程序进行测试。即在当前工作目录下构建一个控制台项目,示例代码如下:
int _ tmain (intargc,_ tchar * argv[])
{
hin instance hinstlib;
hinstLib = LoadLibrary(" D:\ \ ot platform \ \ Release \ \ rsca \ \ otbest extract . dll ");
if(hinstLib = = NULL)
{
LPVOID lpMsgBuf;
FORMAT MESSAGE(
FORMAT _ MESSAGE _ ALLOCATE _ BUFFER |
FORMAT _ MESSAGE _ FROM _ SYSTEM |
FORMAT _ MESSAGE _ IGNORE _ INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//默认语言
(LPTSTR) &lpMsgBuf,
0,
NULL
NULL
);
//处理lpMsgBuf中的任何插入。
//...
//显示字符串。
MessageBox( NULL,(LPCTSTR)lpMsgBuf," Error ",MB _ OK | MB _ icon information);
//释放缓冲区。
local free(lpMsgBuf);
}
返回0;
}
运行该程序,它会告诉您缺少哪个依赖DLL。
0条评论