这是我第一次处理dll。我正在使用Opencv3和Visual C ++编写人脸识别程序。在识别之前,我必须将CascadeClassigier,FaceRecognizer和VideoCapture加载到内存中。它们都是在opencv中定义的类。我想将这些类打包到一个新类中并使用DLL导出它。我这样做的目的是避免在我的应用程序中包含许多opencv文件。 这是我的代码(文件名是RecFuncs.h):
#pragma once
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/face/facerec.hpp"
#include "opencv2/face/predict_collector.hpp"
#include <stdio.h>
#include <conio.h>
using namespace std;
using namespace cv;
#ifdef FACEDLL_EXPORTS
#define FACEDLL_API __declspec(dllexport)
#else
#define FACEDLL_API __declspec(dllimport)
#endif
namespace FaceFuncs {
class FACEDLL_API Load
{
public:
Ptr<face::FaceRecognizer> a;
CascadeClassifier b;
VideoCapture c;
};
}
当我导入我的dll类时,似乎该类不完整或未定义。我怎样才能实现我的意图?有什么想法吗?