Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-08-30, 20:31   #1
HustJames
初级会员
 
注册日期: 2008-08-30
年龄: 45
帖子: 4
声望力: 0
HustJames 正向着好的方向发展
问题 [求助] 不能多次调用Matlab生成的COM接口函数,奇怪!

问题如下:
我的VC程序已经可以调试Matlab生成的COM了,但由于算法要反复多次调用组件的 接口函数,当调用多次之后,函数的返回就不对了,也就是说 HRESULT hr 的值为 负数,开始的时候返回值都为0。

经过调试之后,发现可能是内存泄漏问题,原因如下:
(1)被调用的接口函数涉及到一个大的矩阵,约有2500×2500,当把这个值减小到 1000×1000时,发现可以正确执行的次数增加,由30次到100次以上;
(2)调用Matlab 生成的COM之后,发现存在2700多个内存泄漏(用Boundschecker 内存泄漏检测软件发现的,容量达1,116,982,876之多)。即使仅仅创建COM对 象之后,马上删除,都有15M左右的内存泄漏。用Boundschecker检查后发现,内存 泄漏所发生的地方几乎都是Matlab本身所带的动态库,比如awt.dll等(详见附件)
(3)调用Matlab 生成的COM之后,感觉机器的速度明显变慢;

我在Matlab中,用feature(“statistics”)检查内存的使用情况,并记录到文 件,并没有发现明显的内存减少情况。那么,到底是不是内存的问题呢?我不能确 定,如果是的话,那么用Matlab产生COM的时候,又如何控制呢?

错误的时候,hr 的返回值为0x8000,4005。::FormatMessage之后得到的错误信息 为:“Unsepecified error”.

有哪位大侠知道原因?谢谢执教!
HustJames 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]两个图像如何相乘? Jael MATLAB论坛 4 2013-09-22 15:10
[原创]哥德巴赫猜想-张俊龙请白文章教授出示结果 龙舞山威 数学 0 2009-02-06 14:36
[求助]快考试了,不懂混合编程语言 zjpqddx MATLAB论坛 0 2008-12-25 21:52
[求助]一个有关用设计的滤波器处理声音信号的问题。 fujinhai MATLAB论坛 7 2008-11-13 09:31
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 yijianmei MATLAB论坛 1 2008-07-24 10:15


所有时间均为北京时间。现在的时间是 11:10


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.