社区
VB基础类
帖子详情
请教VB6.0会不会自动释放内存
gooore
2009-09-11 05:02:32
申明的对象挺多的。
不知道可不可以自动释放,手动释放好累。。
谢谢
...全文
706
35
打赏
收藏
请教VB6.0会不会自动释放内存
申明的对象挺多的。 不知道可不可以自动释放,手动释放好累。。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
捧剑者
2009-09-22
打赏
举报
回复
ATL写的COM?
对于COM组件,当引用变量越出生存范围时,VB在幕后自动调用Release,将引用计数减一。引用计数为0时,COM对象将被销毁。
理论上如此,但实践中不set Nothing仍可能会有内存泄漏的问题,所以,还是应该set Nothing为妥。
另外,如果COM组件自己的BUG造成的内存泄漏问题,在VB中set Nothing也没用,那还得到C++中修复BUG.
xiaoyaobihai
2009-09-22
打赏
举报
回复
會
咸清
2009-09-22
打赏
举报
回复
我就是过来学一下
deertao
2009-09-22
打赏
举报
回复
如果定义了类似类的东西,VB是不知道释放的,除非SET NOTHING,否则会把系统资源慢慢消耗掉,最后程序越走越慢。
VB没有提供自动释放内存的机制。
gooore
2009-09-21
打赏
举报
回复
我声明的全是VC的ATL组件。然后VB引用的,声明了很多,手动释放好麻烦。
Tiger_Zhao
2009-09-16
打赏
举报
回复
你的问题太笼统,就好像:到医院看不能不能治好?
神马都能聊
2009-09-16
打赏
举报
回复
你的问题答案就是不会,释放的过程需要你自己来控制。
hanvan
2009-09-16
打赏
举报
回复
会
gooore
2009-09-16
打赏
举报
回复
那位大侠给个明白说法?
好像意见还很不统一啊
slowgrace
2009-09-14
打赏
举报
回复
[Quote=引用 24 楼 chenhui530 的回复:]
引用 9 楼 slowgrace 的回复:
陈辉,那天你和赵老鼠说的释放字符串指针的事情,我好像还是不明白似的。
你哪不明白,那天那个代码只是把变量指向的地方更改了
比如两个两边
dim string1 as string
dim string2 as string
string1 = "123"
这时strptr(string2)值为0,我那个代码是把这个值该成strptr(string1)的值所以要想程序稳定在使用完后还需要把strptr(string2)值归0免得系统去重复释放一块内存导致未知错误
[/Quote]
谢谢,这回明白了。
赵4老师
2009-09-14
打赏
举报
回复
用
set New或CreateObject过的对象=Nothing
释放
请参考《VB与VBA技术手册》
chenhui530
2009-09-14
打赏
举报
回复
[Quote=引用 9 楼 slowgrace 的回复:]
陈辉,那天你和赵老鼠说的释放字符串指针的事情,我好像还是不明白似的。
[/Quote]
你哪不明白,那天那个代码只是把变量指向的地方更改了
比如两个两边
dim string1 as string
dim string2 as string
string1 = "123"
这时strptr(string2)值为0,我那个代码是把这个值该成strptr(string1)的值所以要想程序稳定在使用完后还需要把strptr(string2)值归0免得系统去重复释放一块内存导致未知错误
KGallery
2009-09-14
打赏
举报
回复
在不用时
手动将对象设置成Nothing
Tiger_Zhao
2009-09-14
打赏
举报
回复
不能绝对可以确认是或否,需要具体问题具体分析。
只能说在大多数情况下,在 VB 框架内的对象、字符串、数组等局部变量会自动释放;API 是 VB 外的,必须手动释放。
自动释放只是一种理想,无论哪种语言、采用哪种方案,都不能做到 100% 自动释放。
fengfeng28
2009-09-14
打赏
举报
回复
我写的一个程序,在关闭之后,打开进程,里面还可以看到。
我的程序中关闭时,直接是END。但是有的电脑上运行,在进程中就看不到。
这个说明,跟运行库有关系,最好是释放所有的对象。
嗷嗷叫的老马
2009-09-12
打赏
举报
回复
路过一下下......
yangbo_cuit
2009-09-12
打赏
举报
回复
这要看变量的生成周期
养成好习惯,用完之后set nothing
wwflower
2009-09-12
打赏
举报
回复
退出程就行了。
photoplan
2009-09-12
打赏
举报
回复
好像不会,否则没必要开发 vb.net, .net下才有真正的内存管理
局部变量自动释放那个不算,高级语言都有这个特征,进程结束收回内存也不算,那是操作系统保证的
unsv29mj
2009-09-11
打赏
举报
回复
static 声明的 全局变量的 不会 。
别的量会吧
不清楚
加载更多回复(15)
Vb6
.0版StringBuilder
博主研究.net的StringBuilder类后,用
Vb6
.0实现其基本功能。.net的StringBuilder类核心思想是重复连接字符串时分配大
内存
以提高效率。博主写了3个版本,测试发现用
Vb6
.0功能分配
内存
效率高且安全,还给出了该类的源代码及相关方法。
VB.NET与
VB6
.0区别初认识
本文基于曹祖圣老师的视频,介绍了VB.NET课程内容,还对比了VB.NET与传统
VB6
.0开发的区别。
VB6
.0不支持跨语言处理、不能多执行等,而VB.NET支持跨语言处理、可多执行等。此外,还从界面、事件处理、控件等方面阐述了二者的异同,指出.Net是完全面向对象编程。
VB6
内存
释放
本文介绍了VB语言中
内存
管理的基本原理,包括栈上变量的
自动
回收和堆上对象的引用计数管理机制。通过实例展示了如何通过设置对象引用为Nothing来减少引用计数,最终触发垃圾回收。
为什么VB.NET
不
会
自动
回收Com对象的变量ReleaseComObject
本文主要探讨VB.NET
不
会
自动
回收COM对象变量的原因。由于.NET运行时与COM运行时
内存
管理模型不同,.NET基于对象可达性回收,COM使用引用计数机制。手动
释放
COM对象可避免资源泄漏,
自动
处理存在性能、复杂性和兼容性问题,还给出了手动
释放
的最佳实践建议。
VB6
.0绿色迷你版:轻便编程工具包
本文介绍了
VB6
.0绿色迷你版,它是Visual Basic 6.0精简版,无需传统安装,可低资源占用开发Windows应用。文中阐述了
VB6
基础概念、绿色迷你版特点、关键组件等,还提及开发能力、适合用户类型,鉴于
VB6
.0停更,给出现代化替代建议及高级优化技巧。
VB基础类
7,787
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章