一、動態庫是什麼
很多人寫程序的人都見過.lib和.dll文件,對動態庫也略有耳聞。
生成動態庫後可以得到兩個文件,後綴名分別是.lib以及.dll。
簡而言之,.lib稱爲導入庫,相當於頭文件;.dll是動態庫文件,相當於cpp,頭文件中函數的具體實現。
二、爲什麼使用動態庫
使用動態庫的優點很多,可以減少可執行文件的大小、實現資源共享、便於維護。比如在MFC中調用Qt。
關於動態庫與靜態庫的更多詳細介紹,可以參開這篇文章——c++靜態庫與動態庫
三、如何生成動態庫
1.一個簡單qt界面
我們的目標是創建這個界面的動態庫,然後在其它程序中引入動態庫,把該界面顯示出來。
程序結構如下:
其中包括頭文件、實現文件,以及界面ui文件,程序的主界面類DllTestWidget。
2.創建工程,準備動態庫導出
a.創建完工程之後,設置工程屬性。
b.鏈接器-常規-輸出文件,設置動態庫文件.dll生成路徑。
c.鏈接器-高級-導入庫,設置導入庫文件.lib生成路徑。
上面這些只是設置生成路徑,如果不修改的話,一般生成在默認路徑win32文件夾下。
3.編寫程序,生成動態庫
|
如果生成的動態庫,以後仍然供Qt使用,則直接加上上面的代碼,導出該類即可;
如果不希望包含ui文件,則將其放入.cpp文件中即可;
如果生成的動態庫以後在非Qt的環境下使用,則需要新建一個純虛類,讓Qt類繼承它,實現其共有的虛函數即可。
四、如何使用動態庫
1.配置屬性-調試-環境 加入生成.dll動態庫目錄路徑。
2.C/C++-常規-附加包含目錄 加入所需頭文件.h路徑。
3.鏈接器-常規-附加庫目錄 增加生成的導入庫.lib的路徑。
4.鏈接器-輸入-附加依賴庫 最後加入生成的導入庫.lib文件。
按照上面的設置,我們便可以在其它地方使用之前生成的動態庫啦。
分類: Qt