VC和Matcom混合编程的问题,高手请进!!!有源代码
我是按照http://www.vckbase.com/document/viewdoc/?id=1465这个网页的方法进行编程的,但现在出现了这个问题:如果不加winaxes(m_hWnd)这句话,程序可以运行,但是会出现关闭进程后任务管理器中仍存在进程的情况;如果加了winaxes(m_hWnd)这句话,程序就不能运行了,出现Exception code:OEEDFADE Unknown code called from C:/matlab6p5/work/trans0.m 2 这个错误,请问这是怎么回事?麻烦哪位大侠给解决一下,谢谢!附代码如下:
void CTest2Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
initM(MATCOM_VERSION); //初始化matlib库
// CWnd *p1=NULL;
// p1=(CWnd *)GetDlgItem(IDC_STATIC);//得到用于显示图像Static text控件的ID
// Mm plothandle=winaxes(p1->m_hWnd);//将Static text的句柄设置赋给画图句柄
winaxes(m_hWnd);
trans0(10,10,10,10,10);
exitM();//结束对matlib库的调用
}
用注释掉的三行不行,用winaxes(m_hWnd);也不行,如果都注释掉则会出现内存泄漏的问题,也就是说关闭该进程后任务管理器中中仍有该进程,请问该怎么解决,哪位大侠知道麻烦说一下,我已经查了好几天的资料了,都没解决这个问题.
[ 本帖最后由 lxq 于 2006-12-21 11:49 编辑 ] 你看下面的代码又帮助吗?
CFileDialog dlg(1,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,this);
if(dlg.DoModal()==IDOK)
{
CString filename = dlg.GetPathName();
Mm mFileName;
ChangeStrToMm(mFileName, filename);
if(!this->IsMatcomHandleValid(m_h))
{
m_h = winaxes(this->m_hWnd);
}
imread(mFileName,TM("*.bmp"),i_o,m_data,m_map);
int * pdims = m_data.getdims();
int ndims = m_data.getndims();
int nrow = m_data.rows();
int ncol = m_data.cols();
m_data = im2double(m_data);
if(ndims == 3 )
{
Mm m_data1,maxdata;
rgb2gray(m_data,m_data1);
m_data = m_data1;
maxdata = max(max(max(m_data)));
m_data = (m_data/maxdata)*255;
}
set(m_h,TM("Cdata"),m_data);
colormap(gray());
drawnow();
} 这个问题嘛,可以在ExitInstance()中添加强制关闭进程的代码 我杂用哪个可以成功呢
页:
[1]