Qt 環境中呼叫DLL庫的問題總結

2021-08-15 23:47:10 字數 583 閱讀 5602

之前安裝了乙個mingw版本的qt creator。得到了乙個.dll,. lib, .h.要在qt中呼叫起來,過程中遇到如下問題:

在開始時,發現在qt中始終載入不了這個動態庫更無法使用其中的類。了解到這個動態鏈結庫是c++寫得,懷疑是編譯器的原因,因為一直vs 都是使用的msvc的編譯器而qt預設是mingw , 並且我安裝的也是mingw編譯器版本的qt creator 。

最後做了如下調整:

1.安裝vs2013專業版

2.安裝qt-msvc2013版

dll的使用方法可以再其他帖子中看到,建議使用隱式呼叫dll的方式。

現在生成動態庫的編譯器和使用動態鏈結庫的編譯器一致,在qt中再次實驗後發現果真如此。動態鏈結庫可以正常使用。

另外:__declspec(dllimport) : 在使用的時候用

_declspec(dllexport):在匯出的時候用

如果在程式中在呼叫庫函式後,出現:無法解析的符號錯誤,請不要急躁。。

把專案下的.user。。 debug release  makefile 等等配置檔案(除了乙個.pro和**檔案其他都要刪除,重新匯入專案即可,如果不行,那再做一遍)

Qt呼叫dll中的功能函式

宣告 事先我已經自己動手寫了乙個簡單的dll檔案 mydll.dll c版介面的。並且用我前兩篇有關dll文章裡面的方法,從dll中匯出了導入庫 lib 檔案,dll中有兩個函式,原型如下 void helloworld 函式內部呼叫win32 api,功能是彈出乙個helloworld提示框 in...

Qt呼叫dll中的功能函式

宣告 事先我已經自己動手寫了乙個簡單的dll檔案 mydll.dll c版介面的。並且用我前兩篇有關dll文章裡面的方法,從dll中匯出了導入庫 lib 檔案,dll中有兩個函式,原型如下 void helloworld 函式內部呼叫 win32 api,功能是彈出乙個 helloworld 提示框...

Qt呼叫dll中的功能函式

隱式呼叫 1 首先我們把 h 與 lib a 檔案複製到程式當前目錄下,然後再把dll檔案複製到程式的輸出目錄,2 下面我們在pro檔案中,新增 lib 檔案的位置 libs l d hitempt api l mydll l 引數指定 lib a 檔案的位置 l 引數指定導入庫檔名 不要加副檔名 ...