dll開發環境:qt5.5.1,編譯環境 msvc2010 32bit
dll測試環境:qt5.5.1
另外注意,如果增加了資源檔案,需要qmake一下,否則可能會構建失敗;
1、dll庫的建立
1.1 建立dll工程
選擇載入的元件,因為有視窗介面,所以勾選qtgui,qtwidgets
1.2 為了在其他地方使用生成的庫,qt自動生成了乙個_global.h標頭檔案,裡邊有乙個些巨集定義,為了方便使用,通常我們會將這裡邊的內容直接拷貝到想要匯出的函式或者類所在的標頭檔案中,這樣這個檔案就可以直接刪除了
刪除dll-01_global.h,並且將其中的內容拷貝到的dll01.h中
#ifndef dll01_global_h
#define dll01_global_h
#include #if defined(dll01_library)
# define dll01shared_export q_decl_export
#else
# define dll01shared_export q_decl_import
#endif
#endif // dll01_global_h
#ifndef dll01_h
#define dll01_h
class dll01shared_export dll01
;#endif // dll01_h
1.3 在匯出類中增加乙個函式
int dll01::add(const int& a, const int& b)
1.4 增加乙個介面資源
1.5 增加乙個直接匯出函式
class dll01shared_export dll01
;#endif // dll01_h
dll01shared_export void show();
#include "dll01.h"
#include "dialog.h"
dll01::dll01()
int dll01::add(const int& a, const int& b)
void show()
重新構建程式,因為新增乙個介面,所以構建前,必須qmake一下,否則可能會出錯,切記;
2.建立測試工程
2.1 將匯出的標頭檔案,lib檔案,dll庫,放進測試工程目錄中,標頭檔案在include中,dll-01.lib在lib檔案中,dll在debug目錄中
.pro 檔案中會自動增加以下內容
win32: libs += -l$$pwd/lib/ -ldll-01
includepath += $$pwd/include
dependpath += $$pwd/include
2.2 在main檔案中增加**
#include "widget.h"
#include int main(int argc, char *ar**)
Qt之建立並使用共享庫
在 windows 中,有動態鏈結庫 dll dynamic link library 在 linux 中,有共享庫 shared library 它們是相同的!由於平台和編譯器的差異,輸出的庫檔案也不同 要建立乙個共享庫,需要執行以下幾個步驟 檔案 新建檔案或專案,選擇 library c 庫 選...
VS2017建立動態庫DLL,並實現呼叫
1 開啟vs2017,新建乙個 動態鏈結庫 dll 專案,這裡命名為 myfirstdll 2 建好後的專案中,在標頭檔案中會自動生成framework.h和pch.h兩個檔案,在原始檔中會自動生成dllmain.cpp和pch.cpp兩個檔案 3 在標頭檔案中新建乙個mathlibrary.件,用...
Qt中建立並引用庫 pro檔案的書寫
1.在qt中新建乙個庫 new libraries 包含 pro h global.h cpp 2.編寫程式和庫函式 執行 qmake 生成makefil檔案 和build 在和專案資料夾 a 並列的build 資料夾 b 中,會生成.o 目標 執行檔案 和.so 動態鏈結庫 檔案 3.引用該庫時在...