TC官方合作论坛

 找回密码
 立即注册
查看: 811|回复: 18
打印 上一主题 下一主题

[已解决] COM对象如何释放

[复制链接]
跳转到指定楼层
楼主
发表于 2014-6-10 10:19:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如题 ,每次创建COM对象,都会占用一定的内存资源,请问下如何释放这些内存资源啊。。

回复

使用道具 举报

19#
发表于 2014-6-10 17:08:12 | 只看该作者
跟我一起喊 "德玛西亚"
回复 支持 反对

使用道具 举报

18#
发表于 2014-6-10 14:58:34 | 只看该作者
julele 发表于 2014-6-10 14:52
TC内部怎么写的不清楚, 应该是动态管理内存.......但还真没有释放变量内存的函数, ....也许是为了安全起见 ...

说错了,
应该是重新声明数组....
回复 支持 反对

使用道具 举报

17#
发表于 2014-6-10 14:52:10 | 只看该作者
TC内部怎么写的不清楚, 应该是动态管理内存.......但还真没有释放变量内存的函数, ....也许是为了安全起见吧,
另外,
如果对象是数组的话, 你重新定义一下, 会释放原来内容的
但重新定义肯定是整个数组, 不能重定义数组的元素...

好了, 快采纳吧
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2014-6-10 14:44:58 | 只看该作者
julele 发表于 2014-6-10 14:42
设成全局变量是为了好操作, 这样肯定会耗资源
如果你对内存资源很在意的话, 就用局部变量往下传参好了
现在 ...

说的也是,就是想不明白为什么 全局变量不是数组时调用COM对象然后将该变量赋值为空却不会涨内存呢
回复 支持 反对

使用道具 举报

15#
发表于 2014-6-10 14:42:13 | 只看该作者
设成全局变量是为了好操作, 这样肯定会耗资源
如果你对内存资源很在意的话, 就用局部变量往下传参好了
现在内存都按G算, 多个一两M, 也没什么
回复 支持 反对

使用道具 举报

14#
 楼主| 发表于 2014-6-10 14:35:10 | 只看该作者
julele 发表于 2014-6-10 14:32
都跟你说过了!
最好的设成局部变量, 向下传参, 当代码链执行完毕后, 就释放了 ...

这不是觉得局部变量调用不方便嘛。。。而且论坛的多开示例基本上是全局变量
回复 支持 反对

使用道具 举报

13#
发表于 2014-6-10 14:32:12 | 只看该作者
都跟你说过了!
最好的设成局部变量, 向下传参, 当代码链执行完毕后, 就释放了
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2014-6-10 14:30:52 | 只看该作者
frg0922 发表于 2014-6-10 14:24
释放不掉啊。。每运行一次创建对象,内存涨2M。。但是在局部对象里运行就不会。 ...

在研究了下。。好像是因为数组涨的。。如果全局变量不是数组的话,赋值为空就不会涨那么多了。。这是为什么。。把数组重新定义为0或每个元素赋值为NULL都没效果啊
回复 支持 反对

使用道具 举报

11#
 楼主| 发表于 2014-6-10 14:24:19 | 只看该作者
jimye0526 发表于 2014-6-10 14:08
别听楼上乱说,可以释放,直接把承载com对象的变量 赋值  null 就行了,就会给你释放掉了的 ...

释放不掉啊。。每运行一次创建对象,内存涨2M。。但是在局部对象里运行就不会。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-26 23:47 , Processed in 0.176379 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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