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()失败。
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()失败。
相关文章推荐
- 可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)
- MFC 下调用Qt编写的含界面的dll
- Qt调用MFC的dll或者lib出错
- MFC 调用 QT的dll QT内无法捕获回车键 & PostMessage向窗口发送Alt组合键
- Qt调用MFC的dll或者lib出错
- MFC调用Qt生成的dll
- 可以供MFC调用的,QT实现的DLL(使用qt-solutions的qtwinmigrate实现)
- 可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)
- mfc调用qt的dll
- MFC调用QT编写的DLL动态库
- 如何在QT下调用VC/MFC编写的DLL,分为两种方式。
- DLL动态库中调用MFC资源
- Qt 调用Fortran dll
- Qt调用dll中的功能函数
- 控制台应用程序调用MFC DLL产生的对话框,解决对话框dlg.DoModal报错问题
- QT调用VC dll方法
- 初识DLL之MFC动态调用DLL
- 详解 Qt 调用 DLL功能函数
- QT创建与调用Dll方法(包括类成员)--显式调用
- VC生成的DLL给QT的EXE调用时lib路径问题小结