Windows下用DEV C++建立靜態庫和動態庫
如何在DEV下建立屬於自己的靜態和動態庫呢?(2018.6.6)
一、新建專案:
二、在庫裡面加入你的函式:(編譯)
三、編譯後到工程目錄下檢視是否產生了字尾位.a的檔案(與你的專案名是一致的)
四、使用這個靜態連結庫:
1.首先新建一個.h檔案到你的專案裡面,.h主要是宣告你剛才加入庫的函式:
2.接下來是比較關鍵的一步,將這個.h檔案放到DEV的include檔案目錄下:
3.接下來是呼叫你的庫了,需要新建一個控制檯程式,注意不是空專案了!
命名什麼的隨意。
4.在控制檯專案匯入你的靜態庫:
先不要著急編譯!會報錯,因為還沒有跟你的靜態庫連結呢。
5.連結你的靜態庫:
右鍵專案屬性--->引數
選擇你剛才生成的.a檔案:
最後一步編譯執行看看吧:
非常完美!!!
如何生成屬於自己的動態庫呢?
不難,就是生成dll檔案。
一、新建一個dll工程:(6.7號更新,需要改為C專案)
建好之後發現給了兩個檔案,很人性化。我們只需將自己的函式在.h檔案宣告一下就可以了。
二、將自己的函式加入動態庫:
1.首先在dll.h裡面加入你的函式:
2.實現你的函式:
(仿照那個hellowrold)
3.好了現在可以編譯看看了。編譯成功後,需要到工程目錄下找到2個檔案:
.a和.dll檔案就是我們需要的,其它的別管它。
三、測試我們的動態庫:
1. 老規矩,新建控制檯程式:(不放圖了,懶。)
需要注意的是最好將這個工程跟.a和.dll檔案放在同一個目錄下。
2. 編寫測試的cpp:
說一下獲取dll地址那,最好把測試dll這個專案跟dll檔案在同一目錄下,這樣括號的引數直接填dll的名字就好,不然就要放dll檔案的路徑。注意路徑的格式,需要將右斜槓改為左斜槓或者兩個右斜槓。
3.連結你的動態庫:
跟上面一樣的。只新增.a檔案即可,新增完以後編譯執行。
4.執行看看:
完美!
總結:首先這份教程有幾點很不好,我建專案的時候使用了中文路徑,建議大家不要有這種壞習慣,工程名和存放路徑最好都以英文為主。在建dll的時候,我發現C++專案建立的DLL在後面測試的時候,FUNT1指標會訪問到非法記憶體(原因暫時沒找到),然後因為這個死活執行不通。後來將