Windows平臺下的動態連結庫(DLL)
Windows平臺下的動態連結庫(DLL)
動態連結庫DLL(Dynamic Link Library)檔案又稱"應用程式拓展",是軟體檔案型別。在Windows中,許多應用程式並不是一個完整的可執行檔案,它們被分割成一些相對獨立的動態連結庫,即DLL檔案,放置於系統中。當我們執行某一個程式時,相應的DLL檔案就會被呼叫。一個應用程式可使用多個DLL檔案,一個DLL檔案也可能被不同的應用程式使用,這樣的DLL檔案被稱為共享DLL檔案。
先建立一個DLL專案
工程創建出來以後可以看到一些框架程式碼,函式DllMain是重要的入口函式。
在Windows平臺下動態庫中封裝的可被外界呼叫的庫函式需要使用特定的修飾語法,並且這是和平臺相關的(即只在windows平臺有效)。這個修飾語法就是:__declspec(dellexport) 。 作用是匯出全域性函式,在DLL中只有進行了匯出的函式才能被外部程式呼叫。
不修改原有框架,新建一個原始檔
完成了需要封裝成庫的程式碼的編寫工作後,還需要對專案進行配置
- 取消“預編譯標頭檔案”
- 改為/MTd編譯
3)修改輸出的DLL的名稱為XXX.dll
生成後就得到了所需要的DLL檔案和LIB檔案
.lib檔案中包含一個列表,表明DLL中含有哪些符號、每個符號對應在DLL中的位置。.dll檔案中包含又所有的程式碼編譯後的指令。
在專案中使用DLL
1、先將我們前面生成的相關檔案拷貝到工程目錄下面
2、在要使用該庫的專案中進行相關宣告
3、編譯、連結、生成、執行
通過使用DLL技術能夠對我們的程式碼進行隱藏的同時又能給使用者使用。
DLL的部署位置
DLL檔案必須在特定目錄下才能被程式所找到,這些特定的路徑包括:
- 可執行檔案所在目錄
- 程序當前目錄
- 系統目錄
- Windows目錄
- 環境變數PATH標明的目錄