登录论坛

查看完整版本 : VC++6使用MATLAB7 DLL问题


acli1978
2008-09-07, 23:37
用MATLAB7建一个最简单的函数文件
function [y]=add11(a,b)
y=a+b;
编译生成DLL文件,然后添加到VC6中,编译连接一切都正常了,可在执行时,却得不到正确的结果,
vc中的执行代码如下(DLL初始化及结束函数都正常调用了,这里没写):
if(pA==NULL)
{
pA=mxCreateDoubleMatrix(1,1,mxREAL);//
}
if(pB==NULL)
{
pB=mxCreateDoubleMatrix(1,1,mxREAL);//
}
if(pY==NULL)
{
pY=mxCreateDoubleMatrix(1,1,mxREAL);//
}
// 将 C 语言中的变量值赋给 matlab 中的矩阵
*(mxGetPr(pA))=1;
*(mxGetPr(pB))=2;
//调用MATLAB函数计算pY
mlfAdd11(1, &pY,pA,pB);//1---函数输出1个参数
//从MATLAB 矩阵中取出计算结果
int z=*(mxGetPr(pY));

希望得到z==3,但调试结果z始终为0,
是不是用法有问题,我已经找很多资料也没解决,哪位指点一下,谢谢了!

acli1978
2008-09-09, 09:18
原来是DLL文件拷贝的目录不对,我复制了一份在DEBUG目录下,结果就出问题了,只要工程目录下有一份就行了