社区
VB基础类
帖子详情
vb类的销毁函数何时被调用?
thllv
2010-04-12 05:51:38
我是在access的vba里定义了一个类模块,初始化及调用都正常
Private Sub Class_initialize()的调用是正常的
最后 “Set m_窗体 = Nothing ” ‘m_窗体 是类的实例
Private Sub Class_terminate() 这个销毁函数并没有被调用?什么原因啊?
哪位大侠指点下在纯vb下是怎样的?
...全文
207
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
.net下如何
销毁
类
的实例
原提问地址:http://hi.csdn.net/link.php?url=http://topic.csdn.net%2Fu%2F20091116%2F22%2F67d13f8b-3f05-4455-8042-721f5198b1b5.html
vb
.net下如何
销毁
类
的实例,这个问题其实已经困扰了我至少两年之久,一直没有时间来做个实验,于是在简单做了个实验后,发帖于CSDN
【
VB
6】实现
VB
6中
类
的静态方法
原创文章,欢迎支持 在
VB
的使用过程中,较为高级和较为具有兼容性的编程方式是创建
类
模块。 比如创建了一个数组创建
类
,专门用来创建特定
类
型的数组,它被存在一个“ArrayHelper.cls”文件中。代码如下:Option Explicit '/////////////////// '@@summary '@@require '@@reference '@@license '@@author '@
ASP通过
VB
编译成DLL,
类
间
调用
onstarpage不执行的解决方法
asp通过
vb
被编译成dll,asp通过server.create("你的工程.你的
类
")方式
调用
,
调用
时会先执行onstartpage,但是如果dll的一个
类
需要
调用
另外一个
类
时需要通过 dim 变量 as new 你的
类
,此时并不会执行onstartpage ,
类
初始化的时候会执行另外一...
海思 强制
销毁
VB
功能
插入hi35xx_base.ko时加上模块参数
vb
_force_exit=1,可允许用户在程序退出时不用手 动
销毁
VB
,而由系统强制
销毁
VB
。 注意: 此功能不是规范安全的做法,建议客户还是应该在退出程序时释放已申请的资源,禁 止在使用时强制
销毁
资源。 ...
用
VB
编写一个弹出菜单
类
类
的名称为cPopupMenuOption ExplicitPrivate Type POINT x As Long y As LongEnd TypePrivate Const MF_ENABLED = &H0&Private Const MF_SEPARATOR = &H800&Private Const MF_STRING = &H0&Private Const TPM
VB基础类
7,788
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章