社区
VB基础类
帖子详情
请教VB6.0会不会自动释放内存
gooore
2009-09-11 05:02:32
申明的对象挺多的。
不知道可不可以自动释放,手动释放好累。。
谢谢
...全文
643
35
打赏
收藏
请教VB6.0会不会自动释放内存
申明的对象挺多的。 不知道可不可以自动释放,手动释放好累。。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
vb/vb.net开发精粹(3)
请教
VB6
.0+数据库的问题!请各位高手指教! 用VBA能否实现对WORD登陆密码的修改? 这两个字符串 为什么无法链接到一起???? 去掉一位数组中包含的另一个数组的值 串口接受的数据如何处理??????????????
VB6
CELL控件的问题,CELL的
vb/vb.net开发精粹(4)
各位帮忙 找一个w70n5msg.dll 文件 VB中如何使用insert语句,插入一条纪录 分布式组件状态问题 在
VB6
.0中 使用SQLDMO.SQLServer 显示数据库名称出错啦, 请大家指点一下 在VB控制水晶报表中,用不固定的数据源,运行
vb/vb.net开发精粹(2)
关于EXCEL转换成ACCESS库 关于vb生成exe后出现的问题,急!!!! 一道不知拿不定主意的小题 是不是需要刷新一下窗口? vb 连接sql2000 数据库 超慢的问题~ uridownloadtofile 函数问题
VB6
.0如何调用打印纸格
vb/vb.net原创文章精粹(3)
[url=http://www.vbbaike.com/show.asp?id=101350]
请教
VB6
.0+数据库的问题!请各位高手指教![/url] [url=http://www.vbbaike.com/show.asp?id=101349]用VBA能否实现对WORD登陆密码的修改?[/url] [url=http://www.vbbaike.com/show.asp?...
Visual C++常用数据类型转换详解
说明:本文纯粹是总结一下有关类型转换的贴子,本人并未对所有方法都做测试,仅仅是为了给大家一个参考。读者层次:初学int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章