mfc 调用matalab的dll进行画图时,出不来图形
[我用mfc 调用matalab的dll进行画图时,出不来图形。请问是怎么回事啊我的环境是vs 2005 matalab7.5
huatu.m函数如下:
function y= huatu(x)
y = sin(x)
plot(x,y);
end
MFC处理主要函数如下:
void CmyaddmfcDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if( !mclInitializeApplication(NULL,0) )
{
AfxMessageBox(_T("Could not initialize the application!"));
return ;
}
if( !libhuatuInitialize())
{
AfxMessageBox(_T("Could not initialize libmyadd2!"));
return ;
}
mwArray a(1, 10,mxDOUBLE_CLASS);
double *aData;
aData = new double;
for(int i=0; i<10; ++i)
{
aData = 1.0*i;
}
a.SetData(aData, 10);
mwArray b(1, 10,mxDOUBLE_CLASS);
huatu(1,b,a);
libhuatuTerminate();
mclTerminateApplication();
}
我的环境变量设置等 应该没有问题。因为我执行win32控制台程序是成功的。就是mfc画图总是不成功!!
求帮助!执行的时候,貌似有一个窗口闪过,然后就没了。然后重新执行,就会出现初始化错误提示!
咋没有人看一眼呢:'( 这个问题似乎已经讨论过若干次了,不妨再来一次。
从给出的程序来看,以及lz看到貌似有个窗口一闪而过,那时因为程序在执行过程中的确画出图了,可是关掉的太快了(通过调用libhuatuTerminate())。
解决的办法就是把对我们的DLL库的初始化和关闭分别放到程序别的地方,不要放到按钮响应函数里,通常可以吧初始化代码放到OnInitialDialog或者其他合适的地方,而把关闭库的代码放到OnClose或者其他合适的地方,这样按钮的响应函数只做画图,这样也显得有点条理。 谢谢!已经解决了
我的确看到有讨论过这类问题的,不过还是您的这个回复,让我豁然开朗,谢谢!!! 嗯,就是这样子~~
页:
[1]