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