C 庫的建立和呼叫

2021-10-12 02:24:58 字數 1331 閱讀 6334

專案中經常會用到dll庫,下面來介紹一下c++庫的建立:

1、首先新建乙個win32控制台應用程式,然後選擇dll==》勾選匯出符號==》不勾選預編譯標頭檔案,刪除stdafx.h stdafx.cpp targetver.h dllmain.cpp檔案,然後build即可生成dll,另外在改變dll的生成路徑可在設定介面改變general下面的output directory,改變lib的生成路徑可在,linker下面的advanced中的import library修改,其中$(solutiondir)表示解決方案目錄,$(platform)表示平台目錄(x64或x86),$(configuration)表示編譯模式(debug/release),dll庫是函式的實現,lib是函式的宣告。

下面介紹庫的呼叫:一般有兩種方法,一種是改變屬性,一種是**#paragram

2.1、先導入標頭檔案,然後指定匯入lib庫,用#pragma comment(lib,".\***x.lib"),需要注意dll庫需要放在exe生成的目錄下面。

2.2、匯入標頭檔案,linker下面常規新增lib的路徑,linker=>輸入=>附加依賴項,加上lib檔名,同1一樣,需要將dll庫放在exe同級目錄下。

上面匯入標頭檔案的方法也有兩種,一種是直接新增到專案中,一種是放在乙個include資料夾裡面,然後在c/c++=>general=>addtional include directories新增該路徑,然後就可以#include ***.h呼叫了。

//2021-4-28 補充

3、說明一下lib和dll的區別:你建了乙個dll專案,編譯完成後會生成乙個lib和dll檔案,簡單的來理解就是,lib就是記錄了標頭檔案資訊(函式名稱和位置),dll記錄了cpp中的內容,即lib主要用於鏈結,dll主要用於功能實現,所以一般專案匯入lib後,編譯時沒有dll有lib,編譯是可以通過的,但是如果程式執行起來,dll必須有,此時lib不需要。

5.1:exe所在的目錄。

5.2:工程目錄。

5.3:windows系統目錄。

5.4:windows目錄。

5.5:環境變數中path的一系列目錄。

//2021-4-30 10:19:06 補充

6、這裡解釋一下./ ../ 和.\ ..\的區別,在終端敲過**的都知道,.表示是當前路徑  ..表示是上一級,在vs專案中屬性中配置路徑,為了讓**具有可移植性,最好都是用相對路徑,方便後續的修改,在property裡有頭檔案目錄和lib目錄設定,在這裡,./和..\  ../和..\意思是一樣的,./ .\處於當前專案**所處的路徑,因為這裡不是**,如果是在**裡,大家都知道,我們\表示的是轉義字元,所以**裡想要表示\必須要用\\表示,總結一下:屬性設定/ = \,**中/ = \\,ok!

靜態庫動態庫的建立和呼叫

靜態庫的建立 靜態庫字尾通常以.a結尾,鏈結生成靜態庫時需要使用ar命令。常用引數 r 在庫中插入 修改 模組 替換靜態庫 當插入的模組名已經在庫中存在,則替換同名的模組,如若干模組中有乙個模組在庫中不存在,則ar顯示乙個 錯誤資訊,並且不會替換其他同名模組 c 建立乙個新的庫。不管庫是否存在,都將...

C 如何建立和呼叫DLL

c 如何建立和呼叫dll 載 一 寫在前面 c 語言是一種簡單但功能強大的程式語言,用於編寫企業應用程式。c 語言從c和 c 語言演化而來,在語句 表示式和運算子方面使用了許多 c 功能。c 語言在型別安全性 版本轉換 事件和垃圾 等方面進行了相當大的改進和創新。c 語言提供對常用 api 樣式 如...

C C 庫建立和呼叫總結 一

c 呼叫c 庫 1.工程結構為 lib testdriver 2.c 的lib庫工程中 hello.cpp 中 ifndef cplusplus define cplusplus include hello.h endif void hello hello.h中 中加入 ifndef hello h...