網上大可能是將函數封裝成dll的教程,類的封裝也是基本類似的。編程
建立DLL
在VS2010中新建一個win32->dll工程。如我創建的工程名爲FaceDLL編程語言
添加facedll.h的頭文件(裏面定義dll的接口,調用時會用到)函數
- #pragma once
- #ifdef FaceLIBDLL
- #define FACEAPI _declspec(dllexport)
- #else
- #define FACEAPI _declspec(dllimport)
- #endif
- #include <opencv2/opencv.hpp>
-
- class FACEAPI FaceRecognizer
- {
- public:
- FaceRecognizer();
- ~FaceRecognizer();
-
-
- };
以後在facedll.cpp中寫函數實現,並且要定義爲 FaceLIBDLL
- #define FaceLIBDLL
-
- #include "stdafx.h"
- #include "facedll.h"
- #include <opencv2/opencv.hpp>
-
- FaceRecognizer::FaceRecognizer()
- {
-
- }
-
- FaceRecognizer::~FaceRecognizer()
- {
-
- }
生成(Build)工程,在debug文件夾中會生成相應的DLL及LIB文件:facedll.dll facedll.lib
多個類封裝DLL
封裝好一個類以後,在後面的類能夠調用這個類生成的dll,再封裝新類的dll。post
須要在工程中添加須要引用的頭文件,如facedll.h。在debug中拷貝facedll.lib文件。在 Properties->Linker->Input-> Additional Dependecies中添加facedll.lib(或寫全路徑:"..\debug\facedll.lib")ui
而後同樣的方法再封裝新的類就能夠了~spa
- #pragma once
- #ifdef HEARTLIBDLL
- #define HEARTAPI _declspec(dllexport)
- #else
- #define HEARTAPI _declspec(dllimport)
- #endif
-
- #include <opencv2/opencv.hpp>
- #include "facedll.h"
- #include "datadll.h"
-
- class HEARTAPI HRMeasure
- {
- };
調用DLL
調用須要各個dll的.h、.dll、.lib文件。
將頭文件添加到工程中,並#include到須要用的地方。將lib文件拷貝到項目中,並在 Properties->Linker->Input-> Additional Dependecies 中寫入:facedll.lib;heartdll.lib。
或者在程序中寫入:
- #pragma comment(lib,"facedll.lib")
- #pragma comment(lib,"heartdll.lib")
以後程序中就能夠直接使用封裝成DLL的類了:
- HRMeasure *hrMea=new HRMeasure();