Qt5.12(MSVC编译)编译动态库并自己调用(含导出C出口库)

新建动态库项目->选择C++库

 

 

类型选择共享库直接下一步.

 

选择编译器

 

 

 选择所需用到的模块

 

 

 动态库至此新建完成.

 

头文件

 

 

源文件

 

 

写完直接编译,如弹出以下窗口表示动态库制作完成

 

 

 

 

 

调用自己成的动态库

1.新建一个widgets程序

 

2.pro文件导入自己生成的动态库

INCLUDEPATH += $$PWD/3/include   //导入头文件路径

win32:LIBS += -L$$PWD/3/lib/ -lDllTest //导入lib文件路径

 

头文件

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

 


 

#include <QMainWindow>

 

#include "dlltest.h"

 


 

#include "dlltest_global.h"

 


 

namespace Ui {

 

class MainWindow;

 

}

 


 

class MainWindow : public QMainWindow

 

{

 

    Q_OBJECT

 


 

public:

 

    explicit MainWindow(QWidget *parent = nullptr);

 

    ~MainWindow();

 

    DllTest *m_test;

 


 

private slots:

 

    void on_pushButton_clicked();

 


 

private:

 

    Ui::MainWindow *ui;

 

};

 


 

#endif // MAINWINDOW_H

 


源文件
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_test = new DllTest;
    m_test->test();



}

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


}

void MainWindow::on_pushButton_clicked()
{

    usetest();

}




 

3.控件上新建一个按钮.调用导出的c函数接口

 

  转到槽如下:

void MainWindow::on_pushButton_clicked()

{

    usetest();

}

生成项目,成功如下:
09:54:47: Starting H:\Cheung\WorkFile\study_demo\build-UserDll-Desktop_Qt_5_12_0_MSVC2017_32bit-Debug\debug\UserDll.exe...

09:54:47: 程序异常结束。

09:54:47: The process was ended forcefully.

09:54:47: H:/Cheung/WorkFile/study_demo/build-UserDll-Desktop_Qt_5_12_0_MSVC2017_32bit-Debug/debug/UserDll.exe crashed.

 

接着去编译好的exe文件夹导入所需依赖库以及自己新建的动态库

重新运行. 界面如下 可以发现下面已经输出了我们在动态库里面打印的文字.(因为是在构造函数里面new出对象并调用测试方法,所以运行就直接输出了)

 

 

  接着点击我们新建的按钮,

 

 至此全部完成.,过程已经巨细无比,就算是小白也能轻松掌握吧...

 

posted @ 2020-04-03 10:08  Freedom-萱  阅读(1586)  评论(0编辑  收藏  举报