Qt·程式碼封裝成dll檔案及所生成dll檔案的使用
開發環境:Qt5.8.0+Qt Creator
一、程式碼封裝成dll檔案
步驟一:建立工程
圖1:建立生成dll的工程
圖2
圖3
圖4: 此處需要勾選QtCore,因為後面需要使用該庫內QtCore/qglobal.h
檔案中的Q_DECL_EXPORT
類
圖5
圖6
圖7:建立生成的工程目錄
點選執行按鈕測試是否可以成功執行,如果出現下圖提示則說明執行成功。如果當前執行模式是debug,則在對應的debug目錄下會看到生成庫檔案;如果執行模式是release,則在對應的release目錄下會看到生成的庫檔案:
圖8:
圖9:生成的庫檔案
注意: debug
和 release
兩種模式下生產的檔案是在各自生成目錄下的,即兩種執行模式下生成的檔案分別會在如圖10中的不同位置: ***debug/debug/
和 ***release/release/
。debug
模式下就去如圖10中的***debug
資料夾下的debug
資料夾下找生成的庫檔案,release
模式下就去如圖10中 ***release
資料夾下的 release
資料夾下找生成的庫檔案:
圖10
步驟二:工程內新增內容
1.在建立的makedll.h檔案中新增函式宣告int sum(int x, int y);
圖11
2.在建立的.cpp檔案中新增函式實現:
圖12
步驟三
點選執行按鈕,就會生成封裝好的dll檔案,在對應的debug或者release目錄下可以看到生成好的檔案。
二、dll檔案使用
步驟一:建立測試工程
建立測試dll庫檔案的工程
圖13
步驟二:修改.pro檔案
1.在.pro檔案中新增:
QT += core
,並註釋掉CONFIG -= qt
2.在.pro檔案中引用封裝生成的.dll動態連結庫LIBS += ***\MakeDll.dll
,其中***
表示上面封裝生成的.dll檔案儲存的路徑
圖14
步驟三:拷貝.h檔案
把生成dll檔案工程中的所有.h檔案拷貝到當前工程目錄下,筆者需要拷貝的即是:makedll.h
和makedll_global.h
兩個.h檔案,如下圖所示:
圖15
步驟四:修改測試工程的main.cpp檔案呼叫dll庫
圖16
步驟五:拷貝封裝生成.dll庫檔案
現在點選執行按鈕,執行程式,可能會出現如下錯誤提示,該提示說明動態連結生成的.dll庫檔案失敗:
圖17
解決方法:把生成的.dll檔案拷貝到測試工程生成的.exe同級目錄下,如下圖所示:
圖18
步驟六:執行測試程式
現在再次點選執行按鈕進行測試,則執行成功:
圖19
Finished