社区
VB基础类
帖子详情
vb类的销毁函数何时被调用?
thllv
2010-04-12 05:51:38
我是在access的vba里定义了一个类模块,初始化及调用都正常
Private Sub Class_initialize()的调用是正常的
最后 “Set m_窗体 = Nothing ” ‘m_窗体 是类的实例
Private Sub Class_terminate() 这个销毁函数并没有被调用?什么原因啊?
哪位大侠指点下在纯vb下是怎样的?
...全文
194
9
打赏
收藏
vb类的销毁函数何时被调用?
我是在access的vba里定义了一个类模块,初始化及调用都正常 Private Sub Class_initialize()的调用是正常的 最后 “Set m_窗体 = Nothing ” ‘m_窗体 是类的实例 Private Sub Class_terminate() 这个销毁函数并没有被调用?什么原因啊? 哪位大侠指点下在纯vb下是怎样的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tiger_Zhao
2010-04-13
打赏
举报
回复
必须使用 Set Nothing 的地方
1)要控制对象的释放次序,比如 Excel 无法关闭的问题。
2)解除对象的循环引用,这导致内存泄漏。
thllv
2010-04-12
打赏
举报
回复
[Quote=引用 6 楼 lhcwjy 的回复:]
程序中并没有显式去释放它,此情况VB会自动释放它吗?
这个你不用担心,编译器会自动生成代码去销毁这些对象的,并且销毁的时机是发生在Class_terminate() 之后的
[/Quote]
这样是不是说明:“
VB就根本不存在内存泄露
”
这个判断是正确的?
那么“Set m_窗体 = Nothing ”也可以去掉了?(事实上我试了,去掉这句程序也貌似工作正常)
set object=nothing
这样的语句在什么情况下是必须的?
东方之珠
2010-04-12
打赏
举报
回复
应该在类销毁前,先清空对象dc_1
白云飘飘飘
2010-04-12
打赏
举报
回复
程序中并没有显式去释放它,此情况VB会自动释放它吗?
这个你不用担心,编译器会自动生成代码去销毁这些对象的,并且销毁的时机是发生在Class_terminate() 之后的
thllv
2010-04-12
打赏
举报
回复
我这里的dc_1是作为类的公共变量定义的,作为类实例和外部交换数据用(没有采用Public Property Set 的定义范式)
Public dc_1 As Object
在“Private Sub Class_initialize()”里
Set dc_1 = CreateObject("Scripting.Dictionary")
程序中并没有显式去释放它,此情况VB会自动释放它吗?
bcrun
2010-04-12
打赏
举报
回复
“有的大侠说VB就根本不存在内存泄露,哪位大侠能否再分析下?”
你要看他是在什么语境下讲的,像你这种dc_1如是定义在函数内部的,那超出函数外就会自动set ...nothing的
Set dc_1 = CreateObject("Scripting.Dictionary")
thllv
2010-04-12
打赏
举报
回复
噢,估计和这个有点关系。
具体情况是:
程序中只有一个地方把这个类实例化(在另外一个窗体中)
在窗体关闭时“Set m_窗体 = Nothing”,引用应该只有一个
但是在这个类中又动态生成了其它对象如:“Set dc_1 = CreateObject("Scripting.Dictionary")”
这些对象并没有释放,是不是这个原因导致的?
本来想在Class_terminate() 这个销毁函数中去销毁类自己定义的对象,但他根本没有被调用?
程序运行也正常,没有报如何错误!
我担心如果就这样不管它是否会造成内存泄露的问题?
有的大侠说VB就根本不存在内存泄露,哪位大侠能否再分析下?
白云飘飘飘
2010-04-12
打赏
举报
回复
set object=nothing 先对对象的引用计数减一,如果引用计数为0时才销毁对象。估计是别的地方还有对对象的引用
贝隆
2010-04-12
打赏
举报
回复
关注。。。。。
VB
实用范例,有关
VB
函数
的实例应用
VB
实用范例,有关
VB
函数
的实例应用,比如图形窗口,动态窗口,保持对话
VC中
调用
VB
开发的控件
visual c++ mfc在VC中
调用
VB
开发的控件.zip
VB
API
函数
参考手册(CHM).rar
帮助文件中的Windows API
函数
大约有774个,共分十二大
类
,基本上包括了大部分的常用和非常用的Windows API
函数
,按分
类
编排,具有索引功能,支持全文检索,可添加到收藏夹。
vb
Api
函数
详解
本帮助文件中的Windows API
函数
大约有774个,共分十二大
类
,基本上包括了大部分的常用和非常用的Windows API
函数
,按分
类
编排,具有索引功能,支持全文检索,可添加到收藏夹。
Matlab
函数
转换为
VB
可用的DLL
Matlab
函数
转换为
VB
可用的DLL
VB基础类
7,789
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章