您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> dll隐式调用的一个问题

dll隐式调用的一个问题

来源:网络整理     时间:2016/8/19 20:22:28     关键词:

关于网友提出的“ dll隐式调用的一个问题”问题疑问,本网通过在网上对“ dll隐式调用的一个问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: dll隐式调用的一个问题
描述:

dll是VC创建的MFC DLL,全部默认设置,然后就写了一个函数,
int _stdcall add(int a,int b)
{
return a+b;
}
然后到def文件去
EXPORTS
add
编译得到的dll文件,用delphi已经可以访问这个函数了,但是不知道怎么用VC去隐式调用它。
我已经拷贝了lib文件,然后加了#pragma comment(lib,"dll1.lib"),然后放个按钮,有这些代码来调用
int _stdcall add(int a,int b);
void Cdll_test_vc_1Dlg::OnBnClickedButton1()
{
CString str;
str.Format("%s",add(5,3));
MessageBox(str);
}
编译通过,但是运行后,点下按钮非法操作。


解决方案1:

up

解决方案2:

呵呵,%s用错了
str.Format("%s",add(5,3));
改为str.Format("%d",add(5,3));

解决方案3:

str.Format("%s",add(5,3));
既然add的返回值是int类型,那么用%s格式化是错误的。
应该是:str.Format("%d",add(5,3));

解决方案4:

是不是栈指针esp异常,如果是可以考虑是不是函数调用约定不匹配


以上介绍了“ dll隐式调用的一个问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3400893.html

相关图片

相关文章