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出对象并调用测试方法,所以运行就直接输出了)
接着点击我们新建的按钮,
至此全部完成.,过程已经巨细无比,就算是小白也能轻松掌握吧...