VS2019開發(fā)簡單的C/C++動態(tài)鏈接庫并進行調(diào)用的實現(xiàn)
小白提升:VS2019開發(fā)簡單的C/C++動態(tài)鏈接庫并在解決方案中進行調(diào)用
一、 vs2019簡單動態(tài)鏈接庫的開發(fā)
1.VS2019新建立一個空項目(DLL1)
VS有提供dll項目的模板,可是對于我來說反而搞不懂模板中的文檔,于是建立空白項目,自己去做簡單的配置。
2.解決方案管理器中為項目添加一個頭文件,選擇新建項
在新建的頭文件(DDL.h)中聲明要導(dǎo)出的API,我添加一個簡單的加和函數(shù):
__declspec(dllexport) int ADD(int a,int b);
3.添加一個源文件,實現(xiàn)申明的API函數(shù)
#include "DLL.h" int ADD(int a, int b) { return a + b; }
4.修改項目->項目屬性->常規(guī)->配置類型為動態(tài)庫(.DLL)
5.生成解決方案
生成解決方案,可以看到工程目錄的debug目錄或者release目錄下(這取決你生成的是debug版本還是release版本)生成了動態(tài)鏈接庫的相關(guān)文件。第三方調(diào)用時關(guān)鍵的文件為.lib文件和.dll文件以及工程目錄下的.h頭文件。
二、在解決方案中調(diào)用前面開發(fā)的動態(tài)鏈接庫
1.新建一個C/C++項目(test)
2.將第三方庫的.h文件、.lib文件、.dll文件復(fù)制進工程項目中
.dll文件是程序運行需要載入的動態(tài)鏈接庫,VS中調(diào)試時可以通過 項目->屬性->調(diào)試->環(huán)境 欄目添加.dll文件的path而成功調(diào)試,但在獨立運行.exe程序是須將.dll文件放到同一目錄下,因此建議直接將.dll文件放入debug目錄下或release目錄下。
.h頭文件和.lib庫文件可以隨意放置,只要是能夠通過路徑找到即可,為了方便管理,建議建立文件夾,放置在項目目錄下。
3.在項目中調(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)在解決方案管理面板中添加頭文件和資源文件
添加一個現(xiàn)有項頭文件,在文件夾中找到第三方庫的頭文件(DLL.h),添加進新建立的項目。
添加一個現(xiàn)有項資源文件,在文件夾中找到第三方庫的庫文件(DLL1.lib),添加進新建立的項目。
(3)在項目屬性設(shè)置中添加頭文件和庫文件
項目->屬性->VC++目錄->包含目錄 中添加第三方庫的頭文件;庫目錄下添加第三方庫的庫文件(.lib文件)。
項目->屬性->鏈接器->輸入->附加依賴項中輸入庫文件名稱。
4.在函數(shù)中調(diào)用第三方庫中的函數(shù)
void main() { std::cout << ADD(3, 4) << std::endl; }
編譯運行,結(jié)果符合預(yù)期。
到此這篇關(guān)于VS2019開發(fā)簡單的C/C++動態(tài)鏈接庫并進行調(diào)用的實現(xiàn)的文章就介紹到這了,更多相關(guān)VS2019 C/C++動態(tài)鏈接庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用C/C++代碼檢測ip能否ping通(配合awk和system可以做到批量檢測)
今天小編就為大家分享一篇關(guān)于用C/C++代碼檢測ip能否ping通(配合awk和system可以做到批量檢測),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04C語言實現(xiàn)小學(xué)生計算機輔助教學(xué)系統(tǒng)
這篇文章主要為大家詳細介紹了C語言實現(xiàn)小學(xué)生計算機輔助教學(xué)系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03詳解如何在code block創(chuàng)建一個C語言的項目
這篇文章主要介紹了詳解如何在code block創(chuàng)建一個C語言的項目,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12