当前位置:编程学习 > VB >>

为什么在VB6中调试程序调试时,有时程序退出了,但是 调试工具栏的 【中断】和【停止】按钮还是有效的,这就意味着,被调试的程序还没有结束。

为什么在VB6中调试程序调试时,有时程序退出了,但是 调试工具栏的 【中断】和【停止】按钮还是有效的,这就意味着,被调试的程序还没有结束。
这种情况,经常见,但并不全是,我发现发生这种情况时多数是在我调用了打印预览和打印环境时出现,在这些环节我使用了DATAREPORT控件。

请问大家如何处理。我的环境是VB6+ADO+ACCESS2003. --------------------编程问答-------------------- 没遇到过。。。 --------------------编程问答-------------------- 说明这个时候窗体都已经被Unload了,但是有些运算尚未完成。
多发生在存在异步执行的模块时。
--------------------编程问答-------------------- 某些进程还在运行,某些东东还没有释放 --------------------编程问答-------------------- 1. 释放 如 set   formname   =   nothing

2. 用end

3. 用   faysky2()   的方法,End   不能很好地释放资源。

4. Public   Declare   Sub   FatalAppExit   Lib   "kernel32"   Alias   "FatalAppExitA"   (ByVal   uAction   As   Long,   ByVal   lpMessageText   As   String)   
  Public   Declare   Sub   FatalExit   Lib   "kernel32"   (ByVal   code   As   Long)   
    
  call   FatalExit   0 --------------------编程问答-------------------- 使用END语句结束程序试试..... --------------------编程问答-------------------- http://topic.csdn.net/t/20060111/19/4511400.html --------------------编程问答-------------------- Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
End
End Sub --------------------编程问答-------------------- 有时候会这样,我采用的是屡试不爽的SAVE/LOAD大法! --------------------编程问答--------------------
引用 8 楼 mydo 的回复:
有时候会这样,我采用的是屡试不爽的SAVE/LOAD大法!
]

什么是你所说的SAVE LOAD大法呀。
--------------------编程问答--------------------
引用 9 楼 adoshiwu 的回复:
引用 8 楼 mydo 的回复:
有时候会这样,我采用的是屡试不爽的SAVE/LOAD大法!
]

什么是你所说的SAVE LOAD大法呀。

也就是让你保存后关闭,再重新打开. --------------------编程问答-------------------- 思路:

看你的说法,猜想应该有个过程未完成,并存在于某窗体里,或至少被某窗体内代码调用,导致至少一个窗体未退出...

那,先确定你进行"退出"操作后,"最后一个执行的过程"在哪里.

然后将下面代码加入进去,即可知道是哪些窗体未被卸载,进而查出其中导致未正常退出的具体过程:

dim i as form

for each i in forms
    debug.print i.name
next

虽然这个过程里可以强行unload,但是还是建议按正常流程一一退出为好.... --------------------编程问答-------------------- ....我晕,那两个"11",咋与破折号没有任何区别?

CSDN啥字体? --------------------编程问答--------------------
引用 11 楼 myjian 的回复:
思路:

看你的说法,猜想应该有个过程未完成,并存在于某窗体里,或至少被某窗体内代码调用,导致至少一个窗体未退出...

那,先确定你进行"退出"操作后,"最后一个执行的过程"在哪里.

然后将下面代码加入进去,即可知道是哪些窗体未被卸载,进而查出其中导致未正常退出的具体过程:

VB codedim ias formforeach i in forms
    debug.print i.namenext
虽然这个过程里可以强行unload,但是还是建议按正常流程一一退出为好....


请教是加在主窗体的UNLOAD里吗?
--------------------编程问答-------------------- 你认为是最后一个退出的过程里.

如果主窗口是最后个,那就放它的UNLOAD里. --------------------编程问答-------------------- 大概是你的 datareport 只隐藏而没有关闭,或者不恰当的调用创建了不可见实例。
通过分段注释代码的方式查找引发问题的语句。 --------------------编程问答-------------------- 学习了。。。。。 --------------------编程问答-------------------- 我也遇到这样的,是在进行网络连接时 --------------------编程问答-------------------- 有时候会因为某个控件或组件创建的其他线程没有结束或对象之间存在相互引用,导致这种情况出现,解决方法是:
1、了解问题控件、组件或对象的关闭逻辑,尽量使其正常关闭
2、使用END语句强制中止程序运行
3、说一万遍阿弥陀佛,哈哈 --------------------编程问答-------------------- 资源未合理释放,合理释放就可以了。

给你提供个方法在你认为退出的地方加个断点,然后查看视图的"本地变量"。 --------------------编程问答-------------------- 学习
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,