1. 程式人生 > >Windows下用DEV C++建立靜態庫和動態庫

Windows下用DEV C++建立靜態庫和動態庫

如何在DEV下建立屬於自己的靜態和動態庫呢?(2018.6.6

一、新建專案:

 

二、在庫裡面加入你的函式:(編譯)

 

三、編譯後到工程目錄下檢視是否產生了字尾位.a的檔案(與你的專案名是一致的)

 

四、使用這個靜態連結庫:

1.首先新建一個.h檔案到你的專案裡面,.h主要是宣告你剛才加入庫的函式:

 

2.接下來是比較關鍵的一步,將這個.h檔案放到DEVinclude檔案目錄下:

 

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指標會訪問到非法記憶體(原因暫時沒找到),然後因為這個死活執行不通。後來將

dll改為c專案後,完美執行。網上找了很多資料,也沒見有人用C++dll的,如果有,還有勞各位告訴在下。寫得不好的地方還請見諒,畢竟小白一枚。