您的位置:首页 > 编程语言 > Qt开发

QT调用MFCDLL

2016-12-16 16:04 344 查看
方式一:隐式调用

int nSum = TestAddFunction(1, 2);

qDebug() << nSum;

测试成功!

注意:需要.dll文件、.lib文件、.h文件,

在.pro文件中添加lib库路径和文件

LIBS+= -L../***/***/***/lib -l***

-L后面跟的是lib库路径

-l后面跟的是lib文件名,不要后缀.lib

因为库函数是以C来编译和链接的,所以在包含头文件的时候注意要加extern "C",以C语言来编译和链接。

extern "C"

{

#include "InterfaceFunction.h"

}

所有用到的dll放在exe同目录下。

方式二:显示调用

QLibrary lib("DUHardware_D.dll");

if (lib.load()) {

    qDebug() << "load ok!";

} else {

    qDebug() << "load failed!";

}

typedef int (*TestAddFunction)(int, int);

TestAddFunction fpAdd = (TestAddFunction)lib.resolve("TestAddFunction");

int nSum = fpAdd(1, 2);

qDebug() << nSum;

测试成功!

注意:只需要dll文件,如果dll用到了其他dll,所有dll都需要放在exe同目录下,不然lib.load()失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: