qt dll编写和调用

dll编写

新建项目

头文件

cpp 复制代码
#ifndef LIB1_H
#define LIB1_H

#include "lib1_global.h"

class LIB1_EXPORT Lib1
{
public:
    Lib1();
};

//要导出的函数,使用extern "C",否则名称改变将找不到函数
 extern "C" LIB1_EXPORT int add(int a,int b);

#endif // LIB1_H

CPP文件

cpp 复制代码
#include "lib1.h"

Lib1::Lib1()
{
}

//导出函数实现
int add(int a, int b)
{
    return a+b;
}

调用

方式一:使用QLibrary

cpp 复制代码
typedef  int (*PAdd)(int a,int b);
void MainWindow::on_pushButton_clicked()
{
    //
    QLibrary mylib("lib1");

    if(!mylib.load())

    {

        qDebug() << "lib1加载不成功";
        return;
    }

    PAdd fAdd = (PAdd)mylib.resolve("add");
    if(fAdd){
        qDebug()<<"add:"<<fAdd(10,20);
    }


}

方式二:直接调用

1、将dll头文件复制到要调用的项目中,包括:lib1.h,lib1_global.h

2、将dll生成的文件复制到要调用项目中,包括:lib1.dll,liblib1.a

3、修改要调用项目的pro文件,在最后加上:

cpp 复制代码
#D:/temp1/qt/lib1Test2是要调用的项目文件夹,liblib1是liblib1.a文件,不用.a后缀
LIBS += -LD:/temp1/qt/lib1Test2 -lliblib1

4、引入头文件:

cpp 复制代码
#include "lib1.h"

5、调用代码:

cpp 复制代码
//直接调用
qDebug()<<"add:"<<add(10,20);

6、将dll复制到生成的文件夹中,否则单独运行时会找不到dll

类导出与使用

请参考:https://blog.csdn.net/weixin_33955681/article/details/91966907

相关推荐
赵民勇2 小时前
Qt QML中Component模块详解
qt
不会c嘎嘎4 小时前
QT中的常用控件 (三)
开发语言·qt
闫有尽意无琼4 小时前
Qt局部变量“遮蔽(shadow)”成员变量导致lambda传参报错
开发语言·qt
寻找华年的锦瑟4 小时前
Qt-YOLO-OpenCV
qt·opencv·yolo
南桥几晴秋4 小时前
Qt显示类控件
开发语言·c++·qt
_OP_CHEN4 小时前
【从零开始的Qt开发指南】(十八)Qt 事件进阶:定时器、事件分发器与事件过滤器的实战宝典
qt·前端开发·事件过滤器·qt事件·gui开发·qt定时器·事件分发器
晨风先生4 小时前
打包Qt程序的脚本package.bat
开发语言·qt
环黄金线HHJX.4 小时前
《QuantumTuan ⇆ QT:Qt》
人工智能·qt·算法·编辑器·量子计算
环黄金线HHJX.6 小时前
拼音字母量子编程PQLAiQt架构”这一概念。结合上下文《QuantumTuan ⇆ QT:Qt》
开发语言·人工智能·qt·编辑器·量子计算
abcd_zjq6 小时前
VS2022+QT6.9配置ONNXruntime GPU、CUDA、cuDNN(附官网下载链接)(GPU开启代码示例)
qt·visual studio·cuda·onnx