dll编写
新建项目

头文件
#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文件
#include "lib1.h"
Lib1::Lib1()
{
}
//导出函数实现
int add(int a, int b)
{
    return a+b;
}
 
调用
方式一:使用QLibrary
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文件,在最后加上:
#D:/temp1/qt/lib1Test2是要调用的项目文件夹,liblib1是liblib1.a文件,不用.a后缀
LIBS += -LD:/temp1/qt/lib1Test2 -lliblib1
 
4、引入头文件:
#include "lib1.h"
 
5、调用代码:
//直接调用
qDebug()<<"add:"<<add(10,20);
 
6、将dll复制到生成的文件夹中,否则单独运行时会找不到dll
类导出与使用
请参考:https://blog.csdn.net/weixin_33955681/article/details/91966907


















