社区
VB基础类
帖子详情
vb类的销毁函数何时被调用?
thllv
2010-04-12 05:51:38
我是在access的vba里定义了一个类模块,初始化及调用都正常
Private Sub Class_initialize()的调用是正常的
最后 “Set m_窗体 = Nothing ” ‘m_窗体 是类的实例
Private Sub Class_terminate() 这个销毁函数并没有被调用?什么原因啊?
哪位大侠指点下在纯vb下是怎样的?
...全文
175
9
打赏
收藏
vb类的销毁函数何时被调用?
我是在access的vba里定义了一个类模块,初始化及调用都正常 Private Sub Class_initialize()的调用是正常的 最后 “Set m_窗体 = Nothing ” ‘m_窗体 是类的实例 Private Sub Class_terminate() 这个销毁函数并没有被调用?什么原因啊? 哪位大侠指点下在纯vb下是怎样的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
API范例”专注于
VB
函数
在API(应用程序接口)
调用
中的应用,将通过具体的实例帮助我们深入理解
VB
与系统API的交互。 API
函数
是操作系统提供给程序员的接口,允许程序直接
调用
系统服务,如窗口管理、...
VC中
调用
VB
开发的控件
确保在使用完
VB
控件后正确地释放资源,使用`Release`
函数
减少引用计数,当计数为零时,对象会被自动
销毁
。 9. **调试和测试**: 在实际应用中,需要进行充分的测试以确保VC和
VB
控件之间的交互没有问题。可以使用VC...
vb
Api
函数
详解
API
函数
是操作系统提供给开发者
调用
的一系列子程序,允许程序与操作系统进行交互,实现一些
VB
自身不直接支持的功能。 Windows API
函数
大致分为以下十二大
类
: 1. **系统信息**:这
类
API
函数
用于获取和设置系统信息...
Matlab
函数
转换为
VB
可用的DLL
2. **选择目标文件**:在MCC界面中,选择待转换的.m文件,该文件应设计为可作为外部
函数
调用
的格式。 3. **配置编译选项**:MCC提供多种编译配置,包括DLL或独立可执行文件。选择DLL输出,并设置编译模式为32位或64...
VB
API
函数
参考手册(CHM).rar
API(Application Programming Interface)
函数
是操作系统提供给开发者用于执行特定任务的
函数
,如系统
调用
,这些功能在标准
VB
库中可能并未直接提供。这个CHM(Compiled Help Manual)文件是一个压缩格式的帮助文档...
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章