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

 

 

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

 

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM