Qt之新建界面動態庫並使用

動態庫的創建

動態庫的使用


動態庫的創建

 

//SharedLib_global.h
#ifndef SHAREDLIB_GLOBAL_H
#define SHAREDLIB_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(SHAREDLIB_LIBRARY)
#  define SHAREDLIB_EXPORT Q_DECL_EXPORT
#else
#  define SHAREDLIB_EXPORT Q_DECL_IMPORT
#endif

#endif // SHAREDLIB_GLOBAL_H
//SharedLib.h
#ifndef SHAREDLIB_H
#define SHAREDLIB_H

#include "SharedLib_global.h"

class SHAREDLIB_EXPORT SharedLib
{
public:
    SharedLib();
};

#endif // SHAREDLIB_H

 

//SharedLib.cpp
#include "sharedlib.h"

SharedLib::SharedLib()
{
}

以上就可以新建一個沒有界面的動態庫,如果想封裝含有UI的動態庫,接着看

添加界面類,類名和上面的一模一樣,都是SharedLib。

進行覆蓋原文件

 

//原來的SharedLib.cpp
#ifndef SHAREDLIB_H
#define SHAREDLIB_H

#include <QWidget>

namespace Ui {
class SharedLib;
}

class SharedLib : public QWidget
{
    Q_OBJECT

public:
    explicit SharedLib(QWidget *parent = nullptr);
    ~SharedLib();

private:
    Ui::SharedLib *ui;
};

#endif // SHAREDLIB_H

增加庫的導進導出

修改UI進行測試

點擊小錘子進行編譯庫,不能點擊運行,因爲只是單純庫,還不能獨立運行。

進入構建目錄就可以看到生成的庫文件了。

 

動態庫的使用

新建Demo進行測試

 

 

選擇lib文件

win32: LIBS += -L$$PWD/../build-SharedLib-Desktop_Qt_5_14_1_MSVC2017_64bit-Debug/debug/ -lSharedLib

INCLUDEPATH += $$PWD/../build-SharedLib-Desktop_Qt_5_14_1_MSVC2017_64bit-Debug/debug
DEPENDPATH += $$PWD/../build-SharedLib-Desktop_Qt_5_14_1_MSVC2017_64bit-Debug/debug

把庫文件的兩個頭文件複製在項目目錄並添加到項目工程

修改sharedlib.h的頭文件,只保留public部分。

//SharedLib.h
#ifndef SHAREDLIB_H
#define SHAREDLIB_H

#include <QWidget>
#include "SharedLib_global.h"
class SHAREDLIB_EXPORT SharedLib : public QWidget
{
public:
    explicit SharedLib(QWidget *parent = nullptr);
    ~SharedLib();
};

#endif // SHAREDLIB_H

效果如下:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章