【傳輸平臺】06 vs2013 .dll文件的創建和引用(動態鏈接庫)(編碼,解碼,釋放空間函數動態庫創建)

我們這個項目有用到.dll文件的創建和引用。最初我用的VS2019,發現得用軟件默認的.cpp 和.h文件,對於單.cpp/.h文件還好,但是對於多文件的話實在是不方便。(說句老實話,我搗試了好一會還是有問題,因此下載了VS2013)

01 動態庫在linux和windows下的表現

(1)Linux下是這個樣子:xxxxx.so 和xxxxx.h
(2)Windows下是:xxxxx.dll和xxxxx.h
注意:動態庫的名字不要用中文,不要帶空格

02 動態庫概念

(1).dll不是.exe,不能直接執行
(2)動態庫的目的:集成很多函數,被別人直接執行。(也是爲了保護源碼不泄露)
(3)函數導出符: _declspec(dllexport) 具體用法是將這個加在你要集成函數的前面(.c文件的函數前面和.h文件的函數聲明之前都要加)
(4)xxxxx.dll :動態庫的文件
xxxxx.lib :動態庫的描述文件

下來我們看怎麼創建動態庫和測試動態庫。(這裏用和我們項目有關的解碼和編碼的API函數控件)
解釋一下:一個對象的要用到三個函數:編碼函數,解碼函數,釋放空間函數。

03 創建動態庫(多.c和多.h文件)

(1)打開vs2013,依此點擊文件–>新建–>項目–>win32控制檯應用程序–>.dll和空項目
在這裏插入圖片描述
(2)把自己要進行集成的.c與.h文件放進去如下圖
做項目的話到這一步都是測試好的代碼,直接放在新建的這個項目文件夾裏面,加載現有項就OK。
在這裏插入圖片描述
(3)開始對代碼進行稍微改動
在你將要集成的函數頭之前加入 _declspec(dllexport),不管是函數的聲明和函數都必須加,不然系統默認加_declspec(dllexport)的函數和沒加的是兩個函數(會出現函數名重複的問題)。
我們這塊集成MsgEncode(),MsgDecode(),MsgMemFre();
在這裏插入圖片描述
在這裏插入圖片描述
這塊只舉了一個圖例,對於你要集成的所有函數都得在函數名之前加入 _declspec(dllexport)

(4)生成動態庫
點擊 生成–>生成解決方案。最後要麼出現成功一個,要麼出現最新一個
注意:這塊不是編譯哈,說了這不是exe文件。不要點擊調試。(F5/F11/F10)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
查看Debug文件裏面是否有xxxxx.dll和xxxxx.lib文件.有的話代表成功。

04 測試調用動態庫

這個是按照通常創建項目,寫代碼的方式創建:文件–>新建–>項目–>win32控制檯應用程序–>控制檯應用和空項目
(1)寫好我們要測試的keymng_msg_test.c文件,然後在該測試文件的同級目錄中加入keymng_msg.h,mymsgreal.dll,mymsgreal.lib這三個文件。
在這裏插入圖片描述
(2)點擊項目–>屬性–>連接器–>輸入 添加依賴項mymsgreal.lib
在這裏插入圖片描述
在這裏插入圖片描述
(3)在和keymng_msg_test.c文件同級目錄的Debug文件夾裏面加入.dll和.lib文件
在這裏插入圖片描述

(4)運行測試程序。
注意:按照這個過程一步一步來就不會出錯。若出現錯誤檢查自己哪一步沒有做。
也可參照博客:https://www.cnblogs.com/tiangaipain/p/3712500.html

至此我們安全傳輸平臺的Windows下的編碼解碼和釋放編碼解碼所用空間的函數動態庫創建完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章