vb里一切正常,编译成EXE后运行后关闭退出时报错,这是为什么?
我也试过ctrl+F5,也没问题的,就是编译成EXE后,运行,程序里面运行都没什么问题,就是退出程序的时候报错:
“0x762ec764”指令引用的“0xc0853861”内存。该内存不能为“read”
这是什么原因呢?
我是调用End退出整个程序的,程序里使用了一些recordset,但都只是用到的时候才开始定义并使用,一般出了form应该就会自动释放的,是这样吗?
会不会是这个原因?

解决方案 »

  1.   

    这个可能是vb的问题,我也碰到过多次,好象不是工程的问题,你把vb重装一下或者打个sp6的补丁看看
      

  2.   

    打个sp6就可以了吗?哪里有下载?一定要到ms上去down吗
      

  3.   

    用end语句关闭程序并不是一个很好的方法,end语句虽然可以结束程序,但并不能把窗体完全从内存中移走,造成的结果是窗体还占用着部分资源;完全释放所占资源的方法还是使用unload语句,然后使用 set form = nothing 语句。如果程序中窗体较多,可以使用下面的方法一次将所有窗体移走: 
    sub unloadallforms( ) 
    dim form as form 
    for each form in forms 
    unload form 
    set form = nothing 
    next form 
    end sub 
    上面这个函数采用窗体对象的方法,不需要一个一个地使用unload语句,在程序结束按钮中调用它即可。
    至于0x762ec764”指令引用的“0xc0853861”内存。该内存不能为“read”,我也经常遇到,不知道那儿出了问题。
      

  4.   

    为什么在vb环境下调试运行都没问题呢?一编译成EXE就有错,这种东西可怎么拿出去给别人看啊!
      

  5.   

    这个问题在使用了SUBCLASS的VB程序中是很普遍的问题.
    一个绝招:
    先UNLOAD其它窗口
    再UNLOAD frmmain(主窗口)
    一般问题就解决了.
    dim form as form 
    for each form in forms 
    if form.name<>"frmmain" then unload form 
    set form = nothing 
    next form 
    unload frmmain
      

  6.   

    很多时候我打完游戏退出来就要报这个错,在win2000里,可能是系统的原因。
      

  7.   

    我就是要交给客户啊,急死了找到问题了,我使用了一个叫VerticalMenu的OCX,就是实现QQ面板那种效果的插件,程序里不调用含有这个插件的form就没问题。
    但是我现在是一定要调用这个的呀,一般mdiform1.load里我就已经VMenu.show了,在整个程序退出的时候我才unload VMenu的,但是好象没用啊,怎么办?