日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多个类的DLL封装及调用

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多个类的DLL封装及调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上大多是將函數封裝成dll的教程,類的封裝也是基本相似的。

創建DLL

在VS2010中新建一個win32->dll工程。如我建立的工程名為FaceDLL

添加facedll.h的頭文件(里面定義dll的接口,調用時會用到)

[cpp]?view plaincopy
  • #pragma?once??
  • #ifdef?FaceLIBDLL??
  • #define?FACEAPI?_declspec(dllexport)??
  • #else??
  • #define?FACEAPI??_declspec(dllimport)??
  • #endif??
  • //可以include需要用到的頭文件??
  • #include?<opencv2/opencv.hpp>??
  • ??
  • class?FACEAPI??FaceRecognizer??
  • {??
  • public:??
  • ????FaceRecognizer();??
  • ????~FaceRecognizer();??
  • ??
  • /??
  • //類的函數??
  • ??
  • };??
  • 之后在facedll.cpp中寫函數實現,而且要定義為 FaceLIBDLL

    [cpp]?view plaincopy
  • #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。

    需要在工程中添加需要引用的頭文件,如facedll.h。在debug中拷貝facedll.lib文件。在?Properties->Linker->Input-> ?Additional Dependecies中添加facedll.lib(或寫全路徑:"..\debug\facedll.lib")

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

    [cpp]?view plaincopy
  • #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。 或者在程序中寫入: [cpp]?view plaincopy
  • #pragma??comment(lib,"facedll.lib")??
  • #pragma??comment(lib,"heartdll.lib")??
  • 之后程序中就可以直接使用封裝成DLL的類了: [cpp]?view plaincopy
  • HRMeasure?*hrMea=new?HRMeasure();??

  • 轉載請注明出處:http://blog.csdn.net/xiaowei_cqu/article/details/7737682

    總結

    以上是生活随笔為你收集整理的多个类的DLL封装及调用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。