使用的别人的源码,别人的可以运行,但是我再工程里面就不行,老是在memcpy里面出现Unhandled exception at 0x10233803 (msvcr80d.dll) in MSLDMatching.exe: 0xC0000005: Access violation writing location 0x000001e0.的错误,我把那几行代码放到新的工程中,完全可以给mxGetPr(input)指针赋值,但是在以下程序中无法给mxGetPr赋值,不知道为什么??
特此请教
void MatlabCanny(IplImage*& pGrayImage,IplImage*& pEdgeImage)
{
int Pwidth=pGrayImage->width;
int Pheight=pGrayImage->height; mclInitializeApplication(NULL,0); mxArray * input=NULL;
mxArray * output=NULL; input=mxCreateNumericMatrix(Pheight,Pwidth,mxUINT8_CLASS,mxREAL);
output=mxCreateNumericMatrix(Pheight,Pwidth,mxUINT8_CLASS,mxREAL); memcpy((BYTE *)mxGetPr(input),(BYTE *)pGrayImage->imageData,Pheight*Pwidth*sizeof(BYTE));   在次出现错误 Engine *ep;
ep=engOpen(NULL); engPutVariable(ep,"input",input);
engEvalString(ep,"output=edge(im2uint8(input),'canny');output=im2uint8(output);");
output=engGetVariable(ep,"output"); memcpy(pEdgeImage->imageData,mxGetPr(output),Pheight*Pwidth*sizeof(BYTE)); mxDestroyArray(input); input=0;
mxDestroyArray(output); output=0; mclTerminateApplication();
engClose(ep);
}

解决方案 »

  1.   

    书城有书卖 matlab和vc编程 而且一堆
    =====================================
    你的问题专业性太强了,我平时也用matlab 但是大部分时间都是分析数据的规律进行数据建模
    楼主是否可以换一下思路,用程序去实现matlab的相应功能呢
      

  2.   

    被我莫名奇妙的给弄过去了,我把linker 中的 input的额外库文件的 mclmcr.lib libmat.lib libmex.lib libmx.lib libeng.lib由cv.lib highgui.lib cxcore.lib v4500v.lib 之后,放置cv之前,问题就解决了,不知道为啥??这vs实在博大,莫名其妙的错,莫名奇妙的过能不能给个道理来?
      

  3.   

    也许何MATLAB的编译链接顺序有关吧