日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C++动态链接库dll及静态链接库lib制作及使用教程

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++动态链接库dll及静态链接库lib制作及使用教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現需將C++函數封裝成動態鏈接庫dll,網上看了好多博客教程,說的都不夠全面,現提供一個很有用的視頻,親測有效,啟發很大,附上鏈接:

視頻網址
下面自己根據視頻記錄下制作動態鏈接庫dll過程,防止忘記也給大家提供參考,靜態鏈接庫用的比較少,暫不記錄。
**1.**vs2013-新建項目-win32控制臺應用程序(自定義命名,示例程序命名structdllTest)-空項目,如圖1,點擊完成

**2.**解決方案右擊-添加-新建項目-win32控制臺應用程序(自定義命名)-選dll和導出符號,如圖2所示,

**3.**按照1.2操作,已建成兩個項目,如圖3所示,其中structdll自動生成了一些示例,

打開structdll.h,編寫自己的變量和函數聲明,本例中聲明如圖4所示,

接下來在相應的.cpp中初始化變量,及定義函數,如圖5所示,

.h和.cpp編寫完成后,右鍵structdll項目-生成,生成dll,然后在structdllTest工程文件夾下的debug下就出現了structdll.dll和structdll.lib文件,dll生成成功!如圖6所示,

**4.**dll制作成功后開始進行驗證,即在1中建立的structdllTest項目中進行
右鍵structdllTest項目中源文件文件夾-添加-新建項-.cpp文件(本例命名為dllTest),如圖7所示

**5.**右鍵解決方案-屬性-項目依賴項,進行項目依賴項設置,如圖8所示,

在.cpp中輸入如下代碼,進行動態鏈接庫dll的驗證,代碼及結果如圖9所示

注意:
(1)結構體初始化問題,要在.cpp中使用{}對結構體進行初始化,試了其他的初始化方式,都出現錯誤,不知道是不是自己試的有問題,大家如果有更好的方法歡迎推薦;
(2)函數聲明中有參數項是默認常數項,要么在聲明中寫出常數項,要么在定義時寫出,只能初始化一次,如VOLMEAMAINDLL1_API Mat thinImage(const cv::Mat & src, const int maxIterations=-1);
其中,maxIterations的值若在聲明中給出,定義時無需再賦一次值,否則生成dll過程中會出錯。
(3)使用指針時,記得初始化,動態指針要防止越界,用完后注意釋放!

?
如需將C++制作的dll供C,C#調用,請參考本人的另一篇博客:
參考鏈接

總結

以上是生活随笔為你收集整理的C++动态链接库dll及静态链接库lib制作及使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。