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

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

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

选择编译器

 

 选择所需用到的模块

扫描二维码关注公众号,回复: 10430783 查看本文章

 

 动态库至此新建完成.

头文件

源文件

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

调用自己成的动态库

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出对象并调用测试方法,所以运行就直接输出了)

 

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

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

 

猜你喜欢

转载自www.cnblogs.com/787959687-freedom/p/12624784.html