发布日期:2024-10-03 15:34 点击次数:155
1. 创建动态库白虎 av
在Qt主界面,点击“文献”->“新建文献或技俩”
聘用“Library”、“C++ Library”,点击“Choose...”
指定库名为“MyDll1”,聘用“qmake”后,一王人默许,完成库的创建使命。
完成创建后,有4个文献:MyDll1_global.h、mydll1.h、mydll1.cpp、MyDll1.pro。
2. 添加库接口函数
在文献MyDll1_global.h中添加库接口函数add,添加后该文献中的代码如下:
来吧综合#ifndef MYDLL1_GLOBAL_H
#define MYDLL1_GLOBAL_H
#include
#if defined(MYDLL1_LIBRARY)
# define MYDLL1_EXPORT Q_DECL_EXPORT
#else
# define MYDLL1_EXPORT Q_DECL_IMPORT
#endif
/// 添加的接口函数
extern "C" {
MYDLL1_EXPORT int add(int a, int b);
}
///
#endif // MYDLL1_GLOBAL_H白虎 av
在“mydll1.cpp”添加函数的罢了,代码如下:
extern "C" {
int add(int a, int b) {
return a + b;
}
}
3. 显式调用动态库
使用Qt新建一个诈欺法子,在其main函数中透露调用动态库,具体代码如下:
#include
#include//添加
#include//添加
//声明函数指针类型
typedefint(*AddFunction)(int,int);
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
//////显式调用动态库.
//手工复制库文献到可实施文献方位目次
QLibrarylibrary("./MyDll.dll");//Windows示例旅途
//QLibrarylibrary("./MyDll.so");//Linux示例旅途
if(!library.load){
qDebug
return0;
}
//得回函数指针
AddFunctionaddFunction=(AddFunction)library.resolve("add");
if(!addFunction){
qDebug
library.unload;//卸载库
return0;
}
//调用函数并输出遵循
intresult=addFunction(3,5);
qDebug
//卸载库(可选)
library.unload;
///
MainWindoww;
w.show;
returna.exec;
}
参考贵寓:
(1) The future is written with Qt. https://doc.qt.io/
(2) QLibrary Class. https://doc.qt.io/qt-6/qlibrary.html
(3) qt 对于动态勾通库白虎 av, https://blog.csdn.net/xie__jin__cheng/article/details/140862961