小白提升:VS2019開(kāi)發(fā)簡(jiǎn)單的C/C++動(dòng)態(tài)鏈接庫(kù)并在解決方案中進(jìn)行調(diào)用
一、 vs2019簡(jiǎn)單動(dòng)態(tài)鏈接庫(kù)的開(kāi)發(fā)
1.VS2019新建立一個(gè)空項(xiàng)目(DLL1)
VS有提供dll項(xiàng)目的模板,可是對(duì)于我來(lái)說(shuō)反而搞不懂模板中的文檔,于是建立空白項(xiàng)目,自己去做簡(jiǎn)單的配置。
2.解決方案管理器中為項(xiàng)目添加一個(gè)頭文件,選擇新建項(xiàng)
在新建的頭文件(DDL.h)中聲明要導(dǎo)出的API,我添加一個(gè)簡(jiǎn)單的加和函數(shù):
- __declspec(dllexport) int ADD(int a,int b);
3.添加一個(gè)源文件,實(shí)現(xiàn)申明的API函數(shù)
- #include "DLL.h"
- int ADD(int a, int b)
- {
- return a + b;
- }
4.修改項(xiàng)目->項(xiàng)目屬性->常規(guī)->配置類型為動(dòng)態(tài)庫(kù)(.DLL)
5.生成解決方案
生成解決方案,可以看到工程目錄的debug目錄或者release目錄下(這取決你生成的是debug版本還是release版本)生成了動(dòng)態(tài)鏈接庫(kù)的相關(guān)文件。第三方調(diào)用時(shí)關(guān)鍵的文件為.lib文件和.dll文件以及工程目錄下的.h頭文件。
二、在解決方案中調(diào)用前面開(kāi)發(fā)的動(dòng)態(tài)鏈接庫(kù)
1.新建一個(gè)C/C++項(xiàng)目(test)
2.將第三方庫(kù)的.h文件、.lib文件、.dll文件復(fù)制進(jìn)工程項(xiàng)目中
.dll文件是程序運(yùn)行需要載入的動(dòng)態(tài)鏈接庫(kù),VS中調(diào)試時(shí)可以通過(guò) 項(xiàng)目->屬性->調(diào)試->環(huán)境 欄目添加.dll文件的path而成功調(diào)試,但在獨(dú)立運(yùn)行.exe程序是須將.dll文件放到同一目錄下,因此建議直接將.dll文件放入debug目錄下或release目錄下。
.h頭文件和.lib庫(kù)文件可以隨意放置,只要是能夠通過(guò)路徑找到即可,為了方便管理,建議建立文件夾,放置在項(xiàng)目目錄下。
3.在項(xiàng)目中調(diào)用第三方庫(kù)
有三種方法可以調(diào)用第三方庫(kù)。
(1)直接在代碼前添加引用
- #include "../DLL/DLL.h" //通過(guò)相對(duì)路徑或絕對(duì)路徑添加頭文件
- #pragma comment (lib,"../DLL/DLL1.lib") //添加庫(kù)文件
- void main()
- {
- std::cout << ADD(3, 4) << std::endl;
- }
(2)在解決方案管理面板中添加頭文件和資源文件
添加一個(gè)現(xiàn)有項(xiàng)頭文件,在文件夾中找到第三方庫(kù)的頭文件(DLL.h),添加進(jìn)新建立的項(xiàng)目。
添加一個(gè)現(xiàn)有項(xiàng)資源文件,在文件夾中找到第三方庫(kù)的庫(kù)文件(DLL1.lib),添加進(jìn)新建立的項(xiàng)目。
(3)在項(xiàng)目屬性設(shè)置中添加頭文件和庫(kù)文件
項(xiàng)目->屬性->VC++目錄->包含目錄 中添加第三方庫(kù)的頭文件;庫(kù)目錄下添加第三方庫(kù)的庫(kù)文件(.lib文件)。
項(xiàng)目->屬性->鏈接器->輸入->附加依賴項(xiàng)中輸入庫(kù)文件名稱。
4.在函數(shù)中調(diào)用第三方庫(kù)中的函數(shù)
- void main()
- {
- std::cout << ADD(3, 4) << std::endl;
- }
編譯運(yùn)行,結(jié)果符合預(yù)期。
到此這篇關(guān)于VS2019開(kāi)發(fā)簡(jiǎn)單的C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VS2019 C/C++動(dòng)態(tài)鏈接庫(kù)內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/KS004/article/details/90105440