• 4880阅读
  • 3回复

[提问]Windows下,qt调用动态链接库 [复制链接]

上一主题 下一主题
离线luguiqiao
 

只看楼主 倒序阅读 楼主  发表于: 2015-11-26
初学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

只看该作者 1楼 发表于: 2015-11-26
用depends看下你生成的函数名是否真的是add我怀疑不是。
战争就是和平,自由就是奴役,愚味就是力量
离线luguiqiao

只看该作者 2楼 发表于: 2015-11-26
谢谢,我已解决,把depends里面的函数名复制过来用就对了,不过这样用会不会有点麻烦,是不是编译器的问题?编译的时候居然改变了函数名?

内容来自[新鲜事]
离线lujy1988

只看该作者 3楼 发表于: 2016-01-07
加 extern "C" 试试
快速回复
限100 字节
 
上一个 下一个