生活随笔
收集整理的這篇文章主要介紹了
DLL导出类和导出函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from:https://blog.csdn.net/goodluckmt/article/details/52691297
1、動態庫DLL中的類或者函數有時候要被其他的庫調用,因此需要被其他庫調用的類或者函數需要進行導出。
2、首先編寫需要導出的DLL,新建一個工程設置應用程序類型為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、調用DLL的EXE要設置附加包含目錄,附加庫目錄,設置DLL的路徑到exe目錄之下。
5、然后在主程序之中就可以引用了。
[cpp]?view plain
?copy??????#include?"stdafx.h"??#include?"exportClass.h"??#include?<stdio.h>???//這句話和在附加依賴項中添加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")?這句話和在附加依賴項中添加lib文件的作用一樣,所以在這里就可以不添加了。??
2、DLL中只要導出的類和函數才能被其他程序調用,其他如果不帶有
[html]?view plain
?copyextern?"C"?int?__declspec(dllexport)?類似的標志的常規函數是無法被其他程序調用
總結
以上是生活随笔為你收集整理的DLL导出类和导出函数的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。