[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 ...