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中