【C++】多个类的DLL封装及调用
来源:互联网 发布:美国听歌用什么软件 编辑:程序博客网 时间:2024/05/16 14:11
网上大多是将函数封装成dll的教程,类的封装也是基本相似的.
创建DLL
在VS2010中新建一个win32->dll工程。如我建立的工程名为FaceDLL
添加facedll.h的头文件(里面定义dll的接口,调用时会用到)
#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
#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")
然后一样的方法再封装新的类就可以了~
#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();
转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7737682
0 0
- 【C++】多个类的DLL封装及调用
- 【C++】多个类的DLL封装及调用
- 【C++】多个类的DLL封装及调用
- 【C++】多个类的 DLL 封装及调用
- 【C++】多个类的DLL封装及调用
- 【C++】多个类的DLL封装及调用
- 【C++】多个类的DLL封装及调用
- 【C++】多个类的DLL封装及调用
- 多个类的DLL封装及调用
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题(2)
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++Dll封装时遇到的一系列问题 参考
- Dos文件格式与Unix格式转换:dos2unix,fromdos,todos
- asp检测用户登陆信息
- Bootloader的简介
- 算法与数据结构之七----顺序队列
- CentOS hadoop启动错误 JAVA_HOME is not set and could not be found
- 【C++】多个类的DLL封装及调用
- 1.2.2 计算机硬件的基本组成
- 算法与数据结构之八----链队
- ISC DHCP租约状态转换
- LeetCode总结
- Nutch-2.2.1学习之九Nutch过滤URL实践
- 我的2013,梦在路上
- 一些有用的unity3d 、webgl网址
- 【黑马程序员】Java基础06:StringBuffer和StringBuilder的效率与安全性