找回密码
 注册
Simdroid-非首页
查看: 118|回复: 7

VC与多个版本的matlab同时混编问题

[复制链接]
发表于 2010-10-11 19:19:15 | 显示全部楼层 |阅读模式 来自 陕西西安
来到论坛学习了不少混编的知识,在实际应用中效果也不错。可是,最近又遇到了一些问题,希望能和大家讨论一下。

一直以来跟随shunfly的步伐,坚持在vc中调用matlab65的数学库以及绘图库这种方式进行混编,大部分的问题可以很好的解决掉,运算绘图都没有问题。

近来,在工作中遇到了一些信号处理的问题,开始使用matlab的工具箱,感到豁然开朗,工具箱实在是太好用了,里边的函数简单又好用。可惜的是这些函数无法直接在vc中调用,于是就开始从另一个方面着手进行,用COM-BUILDER来做。

开始进行的还是比较顺利的,我先从加减乘除这类简单函数做起,试验了vc调用matlab编译的com这一可能性,很快就实现了。但是当我继续往下进行时,发现了问题,在我的任务中需要用到wden这个函数,用com-builder可以编译,但是调用的时候会出现问题,起初是提示Variables are not supported by EVAL in compiled code,在网上搜索了后按照哈工大的 fork 给出的解决方案进行了处理,并没有得到想要的结果,而是出现了另一个错误提示'which' is not implemented in standalone mode‘,至此工作陷入了僵局。这里又要提到shunfly了,它实际上对这个函数进行过重新打包,在本论坛就可以搜到这个帖子http://forum.simwe.com/viewthread.php?tid=759880,但是通过我仔细对比后发现他所给出的denoise.dll的运算结果和wden的结果还是有一定的偏差,不过也基本可以用。虽然已经有了较好的结果,但是我还是想再进一步。后来通过查找资料,发现原来是matlab65中的编译器不够强大,无法很好的编译工具箱的函数,所以我将matlab升级,从7.0以后的版本combuilder对工具箱的支持都是比较好的,我编译了wden,实现了在VC中的调用。

正在我高兴的时候问题又来了,因为一直以来我的程序在绘图这部分都是利用shunfly的vc绘图类http://forum.simwe.com/viewthread.php?tid=779324&highlight=%2Bshunfly,当我把matlab7.0编译的com和vc绘图类放在一个工程里的时候com接口不能被建立,在以下这段代码处出问题了。
if(!wden.CreateDispatch("my7wden.my7wdenclass.1_0",NULL))
   AfxMessageBox("创立接口失败");//创立接口

CreateDispatch失败。由于我对com不是很理解所以卡在这里了。。。也不知道是什么原因,所以只好在此求助大家了。

评分

1

查看全部评分

 楼主| 发表于 2010-10-14 17:25:07 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
哎,每人回
回复 不支持

使用道具 举报

发表于 2010-10-14 21:01:47 | 显示全部楼层 来自 上海闵行区
建议直接升级到matlab2010b和vs2008
matlab7.0和7.1的问题还是太多,新版很多问题都克服了
回复 不支持

使用道具 举报

 楼主| 发表于 2010-10-14 21:07:29 | 显示全部楼层 来自 陕西西安
感谢楼上你的回复,不过我的问题在于我已经用习惯了6.5的绘图功能了,可以直接嵌入vc的程序里边,用起来很爽。但是却不能与其他版本生成的com同时在一个工程里用
回复 不支持

使用道具 举报

发表于 2010-10-15 12:42:04 | 显示全部楼层 来自 湖北武汉
denoise.dll是我以前需要用到小波滤波函数花了一晚上自己处理出来的成果。
'which' is not implemented in standalone mode‘,
这些东西,是因为MATLAB65源代码里用了大量的WHICH语句,我把有些注释掉了,有些自己改写了
还有很多诸于此类的问题。
回复 不支持

使用道具 举报

发表于 2010-10-15 12:45:32 | 显示全部楼层 来自 湖北武汉
另外VC绘图类适合如下情况:
       你的VC需要利用MATLAB的部分计算
       该部分计算不需要太负责,不涉及MATLAB6.X无法编译的情况
我后来自己也没有用MATLAB的VC绘图类,转而自己写了VC的单纯绘图类,和MATLAB的曲线绘图功能一致。将重点放在算法上。
所以,利用新版本,虽然打包体积大点,但省去了不少苦布置,是你应该考虑的

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-10-26 21:48:30 | 显示全部楼层 来自 北京
应该跟随时代的步伐,使用新版本,可是我们新手在新版本的混编上参考资料变得更少了~~
回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-23 22:18:36 | 显示全部楼层 来自 陕西西安
另外VC绘图类适合如下情况:
       你的VC需要利用MATLAB的部分计算
       该部分计算不需要太负责,不涉及MATLAB6.X无法编译的情况
我后来自己也没有用MATLAB的VC绘图类,转而自己写了VC的单纯绘图类,和MATLA ...
shunfly 发表于 2010-10-15 12:45
这倒是个很好的办法,不过重写个绘图类感觉工程量很大啊。。。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 09:28 , Processed in 0.034864 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表