查看单个帖子
旧 2008-09-07, 23:37   #1
acli1978
初级会员
 
注册日期: 2008-09-07
年龄: 46
帖子: 2
声望力: 0
acli1978 正向着好的方向发展
问题 VC++6使用MATLAB7 DLL问题

用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 当前离线   回复时引用此帖