可能是退出的时候有很多对象没有置空,有很多特别古怪的警告窗。
如何做到正常而且安全退出程序,应该注意些什么问题。
如何做到正常而且安全退出程序,应该注意些什么问题。
解决方案 »
- 新手请教如何读取txt文本并写入数据库
- 怎样把写的程序添加到win2000的服务中??
- sql查询问题:Me.Adodc1.RecordSource = "select * from data where haoma = '12345'"
- 使用报表控件存盘问题?紧急!
- 300分:有没有办法将VB程序变成桌面的一部分!在桌面上运行?
- 如何返回当前程序目录的上一级目录?
- 求一个算法代码
- CHECKBOX按钮设置
- 请问怎样在同一工程组中,把一个窗体中的某值赋给另一窗体的相同类型的值呀?
- 怎么删除多条被选记录?求救。
- 哪里有注册版的vsflexgrid pro(急到期了)
- 求助:将图片读入表格(VSflexGrid)时耗费大量内存,怎么解决?
如果每个窗体都unload了,那么它的对象也就被置空了
对于以经存在这些问题的工程,你可以再为之编写一个退出函数,对所有的窗体和全局变量、对象进行清空:
sub ExitApp()
unLoad frm1
unload frm....
set Obj1=nothing
set obj....=nothing
end
end sub
----------------
楼上的说的是,因为调用了一个扫描仪的dll
总结下来:
(1)、例如Connection,rs的对象用完就Set Nothing
(2)、总程序退出时,END,强制全部退出
因为有时,进程没退出,搞不清楚怎么回事
以上是我体会。
1.set object = nothing
2.unload object
2﹐如果用到數據庫連接﹐請關閉的時候用set conn=nothing進行完全關閉。
3﹐用到某控件﹐特別是外部控件﹐要看到底是怎么關。如果是于硬件連接的部分﹐沒有關的話﹐會沖突很麻煩。
其實必須要明白﹐窗體關閉的時候一定會經過unload,最后經過Terminate事件。如果你把unload的Cancel設置false﹐請一定在關閉的時候設置回true。否則它永遠都沒有關閉。
最后是個人遇見的一次﹐因為習慣在unload下全部關閉﹐用end﹐但是事實會出現非法操作﹐所有真正end掉程序應該寫在Terminate事件中。個人來講﹐最近在做個和通訊有關的程序﹐用的一個外部控件﹐沒有任何資料﹐是另一家以前的同事寫的﹐如果生成exe文件﹐不會出現問題﹐但是如果我在編輯過程中﹐很突然關VB時候﹐就會出現錯誤提示﹐很麻煩﹐因為連接N多不同數據庫﹐還有.....問題﹐所以也是在查找中﹐因為某本省就弱啊﹐好象找寫控件的那個人問問他該怎么做轔
先Unload
Set XX=nothing再在每个form的unload事件里加个END我就不信退不出去!
if not frm is me then unload frm
next
unload me
dim obj as object
for each frm in vb.forms
for each obj im frm.comtrols
set obj=nothing
next obj
unload frm
next frm
但是大家好像都没注意过一点,一个模块级的不定数组是不会自动被清除掉的,往往因为这个原因,整个模块也无法从内存中清除,会导致内存重复占用。模块unload的时候一定要记住erase掉模块级de不定数组