将VFP 9中的String参数发送到在c ++ Visual Studio上创建的dll

时间:2014-09-01 16:03:43

标签: c++ visual-studio-2010 opencv dll visual-foxpro

我使用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")

1 个答案:

答案 0 :(得分:0)

尝试更改为...这样您就会强制将指针传递给字符串而不是字符串本身。它可能会为你完成。

DECLARE CamPhotoIn "CamCapture.dll" INTEGER, @STRING

testString = "TestVFP"
CamPhoto(0, @testString )