生活随笔
收集整理的這篇文章主要介紹了
DLL导出类和导出函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
from:https://blog.csdn.net/goodluckmt/article/details/52691297
1、動態(tài)庫DLL中的類或者函數(shù)有時候要被其他的庫調(diào)用,因此需要被其他庫調(diào)用的類或者函數(shù)需要進(jìn)行導(dǎo)出。
2、首先編寫需要導(dǎo)出的DLL,新建一個工程設(shè)置應(yīng)用程序類型為DLL
3、類的代碼如下
頭文件
[html]?view plain
?copy#pragma?once ?#define?EX_PORT?__declspec(dllexport) ??using?namespace?std; ?extern?"C"?int?__declspec(dllexport)??subVal(int?a,?int?b);????class?EX_PORT?exportClass ?//#define?EX_PORT?__declspec(dllexport)?{??public:??????exportClass();??????~exportClass();??????int?addVal(int?a,?int?b)??????{??????????return?a?+?b;??????}??};??
CPP
[cpp]?view plain
?copy#include?"stdafx.h"??#include?"exportClass.h"??#include?<iostream>????int?subVal(int?a,?int?b)??{??????return?a?-?b;??}??exportClass::exportClass()??{??????cout?<<?"oh,myGod"?<<?endl;????????}????exportClass::~exportClass()??{??} ?
4、調(diào)用DLL的EXE要設(shè)置附加包含目錄,附加庫目錄,設(shè)置DLL的路徑到exe目錄之下。
5、然后在主程序之中就可以引用了。
[cpp]?view plain
?copy??????#include?"stdafx.h"??#include?"exportClass.h"??#include?<stdio.h>???//這句話和在附加依賴項(xiàng)中添加lib文件的作用一樣,所以在這里就可以不添加了?int?_tmain(int?argc,?_TCHAR*?argv[])??{??????exportClass?ex;??????int?c?=?ex.addVal(5,?6);??????CString?str;??????str.Format(_T("%d"),?c);??????AfxMessageBox(str);??????int?d?=?subVal(5,?6);????????????return?0;??}??
其中
[cpp]?view plain
?copy1、#pragma?comment(lib,"Dllexport1.lib")?這句話和在附加依賴項(xiàng)中添加lib文件的作用一樣,所以在這里就可以不添加了。??
2、DLL中只要導(dǎo)出的類和函數(shù)才能被其他程序調(diào)用,其他如果不帶有
[html]?view plain
?copyextern?"C"?int?__declspec(dllexport)?類似的標(biāo)志的常規(guī)函數(shù)是無法被其他程序調(diào)用
總結(jié)
以上是生活随笔為你收集整理的DLL导出类和导出函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。