我使用OpenCV在C ++ Visual Studio中创建了一个DLL来捕获相机的图像。我收到参数String。
通常发送我得到的是"声明DLL调用导致异常",并且我不确定问题是否是我在VFP上发送的变量类型或我在C ++上收到的类型。
DLL
extern "C"
{
__declspec(dllexport) void CamPhoto(int,String);
}
extern void __cdecl CamPhoto(int cam, string name)
{
char aux[100];
strcpy(aux, name.c_str());
CvCapture *capture = 0;
capture= cvCreateCameraCapture(cam);
IplImage *frame=0;
//SaveImage
char FileName[100];
char auxpath[100];
for(int i=0; i<2; i++){
frame = cvQueryFrame(capture);
sprintf(FileName,"/%s.jpg",aux);
strcpy(auxpath,"C:/Users/Emi/Pictures");
strcat(auxpath,FileName);
cvSaveImage(auxpath,frame);
}
cvReleaseCapture(&capture);
delete [] aux;
}
VFP
DECLARE CamPhotoIn "CamCapture.dll" INTEGER, STRING
CamPhoto(0, "TestVFP")
答案 0 :(得分:0)
尝试更改为...这样您就会强制将指针传递给字符串而不是字符串本身。它可能会为你完成。
DECLARE CamPhotoIn "CamCapture.dll" INTEGER, @STRING
testString = "TestVFP"
CamPhoto(0, @testString )