C++ DLL動(dòng)態(tài)庫的創(chuàng)建與調(diào)用(類庫,隱式調(diào)用)
更新時(shí)間:2022年05月20日 09:57:12 作者:廷益--飛鳥
本文主要介紹了C++ DLL動(dòng)態(tài)庫的創(chuàng)建與調(diào)用(類庫,隱式調(diào)用),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
1、創(chuàng)建庫工程
2、添加頭文件
ClassDll.h
// 宏定義 防止.h文件重復(fù)編譯 #ifndef _DLLCLASS_H #define _DLLCLASS_H // dll庫文件 定義 宏(DLLCLASS_EXPORTS) 使用 _declspec(dllexport) // 使用dll庫文件時(shí) _declspec(dllimport)(不定義宏就行) #ifdef DLLCLASS_EXPORTS #define EXT_CLASS _declspec(dllexport) #else #define EXT_CLASS _declspec(dllimport) #endif // 定義庫文件的 類(導(dǎo)出或?qū)耄? class EXT_CLASS CMath { public: // 定義函數(shù) int Add(int item1, int item2); int Sub(int item1, int item2); }; #endif
3、添加cpp文件
ClassDll.cpp
// 定義 宏(DLLCLASS_EXPORTS) 頭文件類 // 使用 _declspec(dllexport) 導(dǎo)出 #define DLLCLASS_EXPORTS #include "ClassDll.h" // 實(shí)現(xiàn)類函數(shù) int CMath::Add(int item1, int item2) { return item1 + item2; } int CMath::Sub(int item1, int item2) { return item1 - item2; }
4、編譯dll工程
生成文件
5、創(chuàng)建調(diào)用工程
普通工程、多字節(jié)項(xiàng)目
6、調(diào)用工程 添加cpp文件
UseClassdll.cpp
#include <iostream> using namespace std; // 導(dǎo)入頭文件 庫類 使用 _declspec(dllimport) 導(dǎo)出類 #include "../ClassDll/ClassDll.h" // 隱式調(diào)用dll 加載庫文件 #pragma comment(lib, "../Debug/ClassDll.lib") // 運(yùn)行時(shí) dll文件與exe文件在一個(gè)文件夾中 int main() { // 定義 dll庫中的類 CMath math; // 調(diào)用函數(shù) int sum = math.Add(5, 6); int sub = math.Sub(5, 6); // 打印結(jié)果 cout << "sum=" << sum << " sub=" << sub << endl; system("pause"); return 0; }
到此這篇關(guān)于C++ DLL動(dòng)態(tài)庫的創(chuàng)建與調(diào)用(類庫,隱式調(diào)用)的文章就介紹到這了,更多相關(guān)C++ DLL動(dòng)態(tài)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用C語言實(shí)現(xiàn)珠璣妙算Mastermind小游戲
這篇文章主要介紹了使用C語言實(shí)現(xiàn)珠璣妙算Mastermind小游戲,這是一款益智類多人游戲游戲,非常有趣,需要的朋友可以參考下2023-03-03OpenCV提取圖像中圓線上的數(shù)據(jù)具體流程
在對圖像進(jìn)行處理時(shí),經(jīng)常會要提取出圖像中某條直線、圓線或者ROI區(qū)域內(nèi)的感興趣數(shù)據(jù),進(jìn)行重點(diǎn)關(guān)注。本文主要介紹了利用OpenCV獲取圖像中圓線上的數(shù)據(jù),需要的可以參考一下2021-11-11