Я создал DLL в C ++ Visual Studio, используя OpenCV для захвата изображения с камеры. Я получаю параметры 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")
Попробуйте изменить на … Таким образом, вы пытаетесь принудительно передать указатель на строку вместо самой строки. Это может пройти через тебя.
DECLARE CamPhotoIn "CamCapture.dll" INTEGER, @STRING
testString = "TestVFP"CamPhoto(0, @testString )