Qt——動態庫的創建和使用


一、動態庫是什么

很多人寫程序的人都見過.lib和.dll文件,對動態庫也略有耳聞。

生成動態庫后可以得到兩個文件,后綴名分別是.lib以及.dll。

簡而言之,.lib稱為導入庫,相當於頭文件;.dll是動態庫文件,相當於cpp,頭文件中函數的具體實現。

 

二、為什么使用動態庫

使用動態庫的優點很多,可以減少可執行文件的大小、實現資源共享、便於維護。比如在MFC中調用Qt。

關於動態庫與靜態庫的更多詳細介紹,可以參開這篇文章——c++靜態庫與動態庫

 

三、如何生成動態庫

1.一個簡單qt界面

我們的目標是創建這個界面的動態庫,然后在其它程序中引入動態庫,把該界面顯示出來。

 程序結構如下:

其中包括頭文件、實現文件,以及界面ui文件,程序的主界面類DllTestWidget。

2.創建工程,准備動態庫導出

a.創建完工程之后,設置工程屬性。

 

b.鏈接器-常規-輸出文件,設置動態庫文件.dll生成路徑。

 

c.鏈接器-高級-導入庫,設置導入庫文件.lib生成路徑。

上面這些只是設置生成路徑,如果不修改的話,一般生成在默認路徑win32文件夾下。

3.編寫程序,生成動態庫

#ifdef TESTWIDGET_LIB
# define TESTWIDGET_EXPORT __declspec(dllexport)
#else
# define TESTWIDGET_EXPORT __declspec(dllimport)
#endif

如果生成的動態庫,以后仍然供Qt使用,則直接加上上面的代碼,導出該類即可;

如果不希望包含ui文件,則將其放入.cpp文件中即可;

如果生成的動態庫以后在非Qt的環境下使用,則需要新建一個純虛類,讓Qt類繼承它,實現其共有的虛函數即可。

 

四、如何使用動態庫

1.配置屬性-調試-環境 加入生成.dll動態庫目錄路徑。

 

2.C/C++-常規-附加包含目錄 加入所需頭文件.h路徑。

 

3.鏈接器-常規-附加庫目錄 增加生成的導入庫.lib的路徑。

 

4.鏈接器-輸入-附加依賴庫 最后加入生成的導入庫.lib文件。

 

按照上面的設置,我們便可以在其它地方使用之前生成的動態庫啦。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM