Qt创建和调用动态链接库

创建dll动态链接库


打开Qt Creator编辑器,新建一个项目,选择“Library” 、“C++库”。

Qt创建和调用动态链接库_第1张图片

选择库类型为“共享库”,取名为“ShareLib”,点击“下一步”。 

Qt创建和调用动态链接库_第2张图片

选择需要的模块,这里勾选了“QtCore”,由于我们只是创建一个简单的dll,没有其他功能,所以选择默认。如果有其他功能,可以根据自己的需求,自行选择。

Qt创建和调用动态链接库_第3张图片

 创建的项目就是下面这种结构,多了一个“sharelib_global.h”文件,然后类名前面多了一个共享库头。

Qt创建和调用动态链接库_第4张图片 

然后对代码进行一下小小的修改,用于打印“调用DLL成功” 信息,具体代码如下:

#ifndef SHARELIB_H
#define SHARELIB_H

#include "sharelib_global.h"

class SHARELIBSHARED_EXPORT ShareLib
{

public:
    ShareLib();
    void printInfo();
};

#endif // SHARELIB_H
#include "sharelib.h"
#include 


ShareLib::ShareLib()
{
}

void ShareLib::printInfo()
{
    for(int i=0;i<3;++i)
    {
        qDebug()<<"主界面调用DLL成功!!!";
    }
}

 代码添加完以后,直接构建项目,不需要运行,然后会在Debug文件夹下生成一个dll文件。

Qt创建和调用动态链接库_第5张图片

 

调用dll动态链接库


新建一个“Qt Widgets Application”项目,取名为“TestDLL” 。

Qt创建和调用动态链接库_第6张图片

Qt创建和调用动态链接库_第7张图片

Qt创建和调用动态链接库_第8张图片

在设计师界面添加一个按钮 ,用于后期调用dll里头函数。

Qt创建和调用动态链接库_第9张图片

将dll文件和头文件拷到当前TestDLL项目中,ShareLib.dllTestDLL.exe可执行文件放在一起,头文件pro文件放在一起。如果后面报错“找不到dll”,可以把ShareLib.dll复制一份和pro文件放在一起,运行成功再把它删掉。

Qt创建和调用动态链接库_第10张图片

Qt创建和调用动态链接库_第11张图片

在pro文件中调用dll ,注意路径是否正确。

LIBS += ..\ShareLib.dll

对按钮添加信号和槽,点击按钮,打印调用DLL成功信息 。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "sharelib.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->resize(320,240);
    connect(ui->pushButton,&QPushButton::clicked,this,&MainWindow::pushButtonOnClicked);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::pushButtonOnClicked()
{
    ShareLib dll;
    dll.printInfo();
}

运行代码,输出结果如下:

Qt创建和调用动态链接库_第12张图片

你可能感兴趣的:(《Qt学习笔记》)