查看完整版本: [-- Windows下,qt调用动态链接库 --]

QTCN开发网 -> 《Qt高级编程》专栏 -> Windows下,qt调用动态链接库 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

luguiqiao 2015-11-26 08:57

Windows下,qt调用动态链接库

初学qt,想用qt去调用vc生成的dll,但遇到一些问题,部分代码如下:
main.cpp中
QLibrary lib(“mydll.dll");
typedef int(*fun)(int,int);
if( lib.load())
{    
qDebug()<<"   library load success!   ";
fun add=(fun)lib.resolve("add");
if(!add)
{
qDebug()<<"resolve add function failed!";
}
}
程序的输出结果如下:
library load success!
resolve add function failed!

add函数在mydll.cpp中已用_declspec(dllexport)导出,如下:
_declspec(dllexport) int add(int a,int b)
{
return a+b;
}
请问这样的问题出在哪?怎么解决呢?

sevencat 2015-11-26 09:07
用depends看下你生成的函数名是否真的是add我怀疑不是。

luguiqiao 2015-11-26 14:39
谢谢,我已解决,把depends里面的函数名复制过来用就对了,不过这样用会不会有点麻烦,是不是编译器的问题?编译的时候居然改变了函数名?

内容来自[新鲜事]

lujy1988 2016-01-07 11:01
加 extern "C" 试试


查看完整版本: [-- Windows下,qt调用动态链接库 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled