多個類的DLL封裝及呼叫

2021-09-22 22:06:36 字數 1373 閱讀 7118

[cpp]view plain

copy

#define facelibdll  

#include "stdafx.h"  

#include "facedll.h"  

#include 

//標頭檔案中函式的實現  

facerecognizer::facerecognizer()   

facerecognizer::~facerecognizer()   

生成(build)工程,在debug資料夾中會生成相應的dll及lib檔案:facedll.dll   facedll.lib

封裝好乙個類之後,在後面的類可以呼叫這個類生成的dll,再封裝新類的dll。

需要在工程中新增需要引用的標頭檔案,如facedll.h。在debug中拷貝facedll.lib檔案。在 properties->linker->input->  additional dependecies中新增facedll.lib(或寫全路徑:"..\debug\facedll.lib")

然後一樣的方法再封裝新的類就可以了~

[cpp]view plain

copy

#pragma once  

#ifdef heartlibdll  

#define heartapi _declspec(dllexport)  

#else  

#define heartapi  _declspec(dllimport)  

#endif  

#include 

#include "facedll.h"  

#include "datadll.h"  

class heartapi  hrmeasure  

;  

呼叫需要各個dll的.h、.dll、.lib檔案。

將標頭檔案新增到工程中,並#include到需要用的地方。將lib檔案拷貝到專案中,並在 properties->linker->input->  additional dependecies 中寫入:facedll.lib;heartdll.lib。

或者在程式中寫入:

[cpp]view plain

copy

#pragma  comment(lib,"facedll.lib")  

#pragma  comment(lib,"heartdll.lib")  

之後程式中就可以直接使用封裝成dll的類了:

[cpp]view plain

copy

hrmeasure *hrmea=new hrmeasure();  

C 多個類的DLL封裝及呼叫

專案中需要把一些共通的功能,抽出來做乙個dll來呼叫。因為是以類作為單位的,資料確實少,主要參考了上面那篇博文。需要補充的一點是 程式能夠正常呼叫,但是偶爾會發生accessviolationexception,查到的結果是,函式宣告時未新增 stdcall,導致預設呼叫了 cdeccall。具體解...

C 多個類的DLL封裝及呼叫

網上大多是將函式封裝成dll的教程,類的封裝也是基本相似的。在vs2010中新建乙個win32 dll工程。如我建立的工程名為facedll 新增facedll.h的標頭檔案 裡面定義dll的介面,呼叫時會用到 pragma once ifdef facelibdll define faceapi ...

C 多個類的DLL封裝及呼叫

網上大多是將函式封裝成dll的教程,類的封裝也是基本相似的。在vs2010中新建乙個win32 dll工程。如我建立的工程名為facedll 新增facedll.h的標頭檔案 裡面定義dll的介面,呼叫時會用到 pragma once ifdef facelibdll define faceapi ...