我写了一个程序中的某一个特定操作(该操作只有一条语句:End)在VB开发环境下执行(F5)没有任何问题,但是一旦编译成EXE,用EXE执行就报错。
请问这两种情况有什么区别?应该以哪种为标准呢?

解决方案 »

  1.   

    你只是把其中一部分生成EXE,,,,,如果全部生成就不会出错,,,,调试环境下有些定义是可以忽视的,但编译成EXE却要相对有明确的定义!
      

  2.   

    就是编译为P代码。
    明确定义是不是指这个:Option Explicit?
    我也有的。。
      

  3.   

    记住一句话:永远不要用END!END语句是一种“暴力”结束应用程序的方式。如果你的程序中的某些对象未释放,或者是引用了一些底层的API,那么用END语句很可能会造成内存泄露,出错也就不足为奇了。
      

  4.   

    楼上的说的很正确,脱离后不在受ide的管理,那么肯定不一样
      

  5.   

    你把所有窗体全用Unload 方法卸载,引用对象(类)全部用Set 类 = nothing释放就没有什么问题,如果用到了子类或者hook,要注意怎么取消子类或者hook哦
      

  6.   

    @ cso(sjxsoft)
    改用阁下的方法了,中止程序改成这样:
        Dim f As Form
        For Each f In Forms
            Unload f
            Set f = Nothing
        Next f
    同样,还有错误,我在程序中使用了一个第三方的控件,出错就是在这个控件的一个事件中调用中止程序产生的(其他地方调用是没有错误的,即使原来那样用END)。有没有什么办法解决呢?
      

  7.   

    该控件自带的例子的中止程序(运行没有错误)是这样的:
    PostMessage Me.hwnd, WM_SYSCOMMAND, SC_CLOSE, 0
    我改用同样的调用,但是错误依旧。。