C++ Dll导出函数与opencv
我正在尝试使用C++ Dll导出函数与opencv,c++,opencv,dll,C++,Opencv,Dll,我正在尝试使用opencv和unity。我尝试了一个打开摄像头的功能,另一个关闭摄像头的功能: #include "stdafx.h" #include "camera.h" #include <fstream> using namespace std; #define DllExport __declspec( dllexport ) cameraControl mycam; HANDLE threadCamera; int threadCameraNumber = 0;
opencv
和unity
。我尝试了一个打开摄像头的功能,另一个关闭摄像头的功能:
#include "stdafx.h"
#include "camera.h"
#include <fstream>
using namespace std;
#define DllExport __declspec( dllexport )
cameraControl mycam;
HANDLE threadCamera;
int threadCameraNumber = 0;
extern "C"
{
DWORD WINAPI cameraStart(LPVOID lpParam)
{
mycam.captureStart();
return 0;
}
DllExport void cameraRun()
{
threadCamera = CreateThread(NULL, 0, cameraStart, &threadCameraNumber, 0, NULL);
}
DllExport void cameraStop()
{
mycam.captureEnd();
}
}
#包括“stdafx.h”
#包括“camera.h”
#包括
使用名称空间std;
#定义DllExport\uuu declspec(DllExport)
摄像机控制mycam;
手持摄像机;
int threadCameraNumber=0;
外部“C”
{
DWORD WINAPI cameraStart(LPVOID lpParam)
{
mycam.captureStart();
返回0;
}
DllExport void cameraRun()
{
threadCamera=CreateThread(NULL,0,cameraStart,&threadCameraNumber,0,NULL);
}
DllExport void cameraStop()
{
mycam.captureEnd();
}
}
问题是,当我调用第一个函数cameraRun()
时,它会打开cam,但当我调用第二个函数cameraStop()
时,它不会执行任何操作。这可能会有帮助:
cvQueryFrame
从相机或文件中获取并返回帧
IplImage*cvQueryFrame(CvCapture*capture);
捕获
视频捕获结构。
函数cvQueryFrame从相机或视频文件中获取帧,解压缩并返回该帧。此函数只是一次调用中cvGrabFrame和cvRetrieveFrame的组合。用户不应发布或修改返回的图像。我的问题不在opencv中,它在dll中