溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2021-05-18 11:22:04 來(lái)源:億速云 閱讀:1617 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

小白提升: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);

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

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)

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

5.生成解決方案

生成解決方案,可以看到工程目錄的debug目錄或者release目錄下(這取決你生成的是debug版本還是release版本)生成了動(dòng)態(tài)鏈接庫(kù)的相關(guān)文件。第三方調(diào)用時(shí)關(guān)鍵的文件為.lib文件和.dll文件以及工程目錄下的.h頭文件。

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

二、在解決方案中調(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)目。

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

(3)在項(xiàng)目屬性設(shè)置中添加頭文件和庫(kù)文件

項(xiàng)目->屬性->VC++目錄->包含目錄 中添加第三方庫(kù)的頭文件;庫(kù)目錄下添加第三方庫(kù)的庫(kù)文件(.lib文件)。
項(xiàng)目->屬性->鏈接器->輸入->附加依賴項(xiàng)中輸入庫(kù)文件名稱。

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

4.在函數(shù)中調(diào)用第三方庫(kù)中的函數(shù)

void main()
{
	std::cout << ADD(3, 4) << std::endl;
}

編譯運(yùn)行,結(jié)果符合預(yù)期。

VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法

以上是“VS2019開(kāi)發(fā)C/C++動(dòng)態(tài)鏈接庫(kù)并進(jìn)行調(diào)用的實(shí)現(xiàn)方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI