标题:vc 调用带有输出值的画图功能dll后,matlab和vc之间参数怎么传递
只看楼主
wangyanxiaji
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-23
 问题点数:0 回复次数:1 
vc 调用带有输出值的画图功能dll后,matlab和vc之间参数怎么传递

void CMainFrame::OnButton32771()
{
// TODO: Add your command handler code here
// 这个程序的功能是调用由matlab生成的ppp3.dll画图,并返回字符串t1:判断是否画图成 // 功。最后显示t1。
ppp3Initialize();

mxArray *t0,*t,*t1;
CString s0="e:\\;BL_X;BL_T;BL_R;";
CString s="4,0.95,0.78,0.61,0.43,0,0,0,0,0,0,0,0,0,0,0,0,0,0";


t0=mxCreateString(s0);
t=mxCreateString(s);
t1=mlfBl_new(t0,t);

char *str=mxArrayToString(t1);

::AfxMessageBox(str);

//销毁t, 释放内存
mxDestroyArray(t0);
mxDestroyArray(t);
//注销动态链接库
ppp3Terminate();
}

编译连接均没错,运行后总报错:unhandled exception in bl1.exe(libmx.dll):0xC0000005;Access violation.
我察看了一下,是char *str=mxArrayToString(t1)有错,这一句是将matlab字符串转换为vc字符串。请教高手,怎么修改源程序呢?

搜索更多相关主题的帖子: matlab 画图 dll 参数 
2007-05-23 16:37
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
得分:0 

估计t1是没用的指针,判断下 t1 == NULL 吧
如果不是这问题,那么试一下这样
char *str=mxArrayToString( mxDuplicateArray(t1) );


OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2007-05-25 23:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-141873-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050987 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved