奇怪的是,这个错误是随机出现的,而且只会在关闭时才随机出现,我将几个最复杂最关建的模块去掉,程序依然有此现像发生,最后我用了这个办法:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Me.Hide
Timer1.Enabled = False
Sleep (2000)
End
End Sub好像稳定了少许,但不知道是不是只是我暂时未遇到错误再发生而已,先发个贴问一下

解决方案 »

  1.   

    这种错误基本上是发生了比较严重的错误,VB已经捕捉不到这种错误所致.一般都是调用API错误或者控件安装错误所致,你好好找找!
      

  2.   

    调用了非常多的API,程序做得很底层,多次试验后发现出错还是有规律可寻的,错误 发生机率最高的情况就是,当系统正在全速处理一个程序的时候,我的程序一关闭就崩溃了简单举个例子,一般一打开再关掉是不会出错的,如果打开我的程序后,再打开一个比较吃资源的程序,好像IE,photoshop等这些软件,硬盘差点的朋友可能会听到硬盘哗哗的声音,凡是在硬盘和CPU都在全力工作时,这时再来关闭我的程序,很大机率会出现我所说的错误,鉴于这个错误有一定的隐蔽性,调试起来实在很困难
      

  3.   

    还有一种情况,就是程序开着的时间比较长,大约10分钟,再关闭,就崩溃了
    我晕,这叫我怎么调试啊
    在VB里调试还能显示出错信息,问题是编绎后才出问题,我装了VC,停在mov256,什么什么堆栈这个信息也没什么用,就算VC高手也很难判断吧我想
      

  4.   

    我又加了一句Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Me.Hide
    cancel=True
    Timer1.Enabled = False
    Sleep (2000)
    End
    End Sub先停了timer再关闭程序,好像又稳定很多了,但我仍然不知道是不是只是我暂时运气好没碰到,请有心人留下邮箱,帮我调试一下,保证程序绿色安全没毒(只有36K,什么外部控件都放不下了)
      

  5.   

    Me.Hide
    cancel=True
    你这是干什么!?
    将窗口隐藏,将CANCEL设置为TRUE(阻止窗口关闭),这还能退出吗?强烈建议不要用END,容易引起内存泄漏!!
      

  6.   

    加了End当然能退出,cancel=True只是先处理别人关掉程序这一举动,让程序有时间处理其它事情,处理完后再关闭而已你自己写一个放到VB里试试看能不能关问题的原因我已找到了,出在一枚举进程的模块上