VS2019開發(fā)簡單的C/C++動(dòng)態(tài)鏈接庫并進(jìn)行調(diào)用的實(shí)現(xiàn)
小白提升:VS2019開發(fā)簡單的C/C++動(dòng)態(tài)鏈接庫并在解決方案中進(jìn)行調(diào)用
一、 vs2019簡單動(dòng)態(tài)鏈接庫的開發(fā)
1.VS2019新建立一個(gè)空項(xiàng)目(DLL1)
VS有提供dll項(xiàng)目的模板,可是對于我來說反而搞不懂模板中的文檔,于是建立空白項(xiàng)目,自己去做簡單的配置。
2.解決方案管理器中為項(xiàng)目添加一個(gè)頭文件,選擇新建項(xiàng)
在新建的頭文件(DDL.h)中聲明要導(dǎo)出的API,我添加一個(gè)簡單的加和函數(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)庫(.DLL)

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

二、在解決方案中調(diào)用前面開發(fā)的動(dòng)態(tài)鏈接庫
1.新建一個(gè)C/C++項(xiàng)目(test)
2.將第三方庫的.h文件、.lib文件、.dll文件復(fù)制進(jìn)工程項(xiàng)目中
.dll文件是程序運(yùn)行需要載入的動(dòng)態(tài)鏈接庫,VS中調(diào)試時(shí)可以通過 項(xiàng)目->屬性->調(diào)試->環(huán)境 欄目添加.dll文件的path而成功調(diào)試,但在獨(dú)立運(yùn)行.exe程序是須將.dll文件放到同一目錄下,因此建議直接將.dll文件放入debug目錄下或release目錄下。
.h頭文件和.lib庫文件可以隨意放置,只要是能夠通過路徑找到即可,為了方便管理,建議建立文件夾,放置在項(xiàng)目目錄下。
3.在項(xiàng)目中調(diào)用第三方庫
有三種方法可以調(diào)用第三方庫。
(1)直接在代碼前添加引用
#include "../DLL/DLL.h" //通過相對路徑或絕對路徑添加頭文件
#pragma comment (lib,"../DLL/DLL1.lib") //添加庫文件
void main()
{
std::cout << ADD(3, 4) << std::endl;
}
(2)在解決方案管理面板中添加頭文件和資源文件
添加一個(gè)現(xiàn)有項(xiàng)頭文件,在文件夾中找到第三方庫的頭文件(DLL.h),添加進(jìn)新建立的項(xiàng)目。
添加一個(gè)現(xiàn)有項(xiàng)資源文件,在文件夾中找到第三方庫的庫文件(DLL1.lib),添加進(jìn)新建立的項(xiàng)目。

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

4.在函數(shù)中調(diào)用第三方庫中的函數(shù)
void main()
{
std::cout << ADD(3, 4) << std::endl;
}
編譯運(yùn)行,結(jié)果符合預(yù)期。

到此這篇關(guān)于VS2019開發(fā)簡單的C/C++動(dòng)態(tài)鏈接庫并進(jìn)行調(diào)用的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VS2019 C/C++動(dòng)態(tài)鏈接庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解
這篇文章主要介紹了C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08
C++實(shí)現(xiàn)飛機(jī)大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
C++類和對象深入探索之分文件編寫點(diǎn)和圓的關(guān)系詳解
先前把C++類和對象的封裝講完了,并且留下了一個(gè)判斷兩個(gè)立方體是否相等的案例,但是那么多知識(shí)點(diǎn),僅僅一個(gè)案例是不夠的,所以再來一個(gè)分文件編寫點(diǎn)圓關(guān)系的案例;創(chuàng)建圓類和點(diǎn)類,圓類包含點(diǎn)類,算是一個(gè)嵌套吧,順便復(fù)習(xí)一下分文件編寫的方法,開整2022-05-05
C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時(shí)傳遞this指針
這篇文章主要介紹了C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時(shí)傳遞this指針,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C語言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié)
這篇文章主要介紹了C語言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié),分別為atoi()函數(shù)和atol()函數(shù)以及atof()函數(shù),需要的朋友可以參考下2015-08-08
在Centos7中使用vscode和gdb調(diào)試PG插件的方法
這篇文章主要介紹了在Centos7中使用vscode和gdb調(diào)試PG插件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09

