首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

获取DLL函数地址失败解决方案

2014-07-12 
获取DLL函数地址失败本帖最后由 jiangsheng 于 2010-04-27 04:19:40 编辑把.dll文件复制到工程目录下面,编

获取DLL函数地址失败
本帖最后由 jiangsheng 于 2010-04-27 04:19:40 编辑 把.dll文件复制到工程目录下面,编写如下代码:
void CTestDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
HINSTANCE  hInst;
hInst=LoadLibrary("Dll2.dll");
typedef  int  (*ADDPROC)(int a,int b);
ADDPROC   Add=(ADDPROC)GetProcAddress(hInst,"add");
if(!Add)
{
MessageBox("获取函数地址失败!");
return;

}

CString  str;
str.Format("5+3=%d",Add(5,3));
MessageBox(str);
}
运行时单击按钮提示获取函数地址失败!

还有一个问题哈:大侠一起解决一下咯:
在命令提示符里输入Dumpbin,提示:
Dumpbin不是内部或外部命令,也不是可运行的程序或批处理文件
运行vcvars32.bat文件后,出现错误如上,

[解决办法]
.lib文件添加了吗?
[解决办法]
不是LIB问题
也不需要LIB
你查看导出的函数的原型是什么呢
你可以用工具Depends查看
函数名称
[解决办法]
Dumpbin不是内部或外部命令,也不是可运行的程序或批处理文件
没有设置系统路径
我如果没有猜错
你应该是看孙鑫老师的教程
你按他给你说的方法做
注册系统路径
[解决办法]
是LoadLibrary失败?

调试运行吗?
[解决办法]

引用:
运行vcvars32.bat文件后...

call vcvars32.bat???
[解决办法]
dumpbin的问题很简单,因为你没有设置路径,在cmd命令行中先输入:
set path=dumpbin所有的路径 即可。

运行时单击按钮提示获取函数地址失败!
=====================
这个你可以先看一下hInst=LoadLibrary("Dll2.dll");
的返回值是不是NULL。如果不是NULL,在调用了ADDPROC Add=(ADDPROC)GetProcAddress(hInst,"add");之后调用GetLastError看一下出错原因。

热点排行