为什么执行end代码时居然退出了.

来源:百度知道 编辑:UC知道 时间:2024/05/06 00:00:41
有个代码我想头都晕了,就是不知道错在那儿,主窗体代码很长.

情况是这样的,我在一个按钮里面写end
在退出窗体时同样也写着end ,\
居然连VB一起也退出去了,大家遇到过没有.

就是private sub command1_click()
end
end sub
private sub form_unload(cancel as int....)
end
end sub
一旦按窗体的那个红叉,连vb一起退出.

你没贴出来的代码里应该调用了某些类,end前没有正常卸载,导致VB崩溃
用end来结束程序不是一个好习惯,应该先卸载调用的类(对象),卸载窗体,最后退出程序

VB有个SP6的补丁包,记得打上

如果不是以上情况,要判断一下是不是你的系统或是VB本身有问题,可以新建一个工程,去掉所有窗体,创建一个模块,贴上以下代码
sub main()
end
end sub
运行看是不是能正常退出,如果这样还是连VB都退出,就是你的系统或VB有问题了

楼上的说法不对,form_unload事件可以不用判断cancel参数的,判断cancel参数只是让你知道该程序是通过什么方式退出的,从而作出不同的处理;另外在程序任意位置执行end是强行中止程序,不会再执行程序中任何VB代码,类模块创建的对象被破坏,由Open语句打开的文件被关闭,并且释放程序所占用的内存,其它程序的对象引用无效,所以说不管什么情况都用end来中止程序是不好的习惯,应尽量避免

END的意思就是代表结束程序进程,终止,比unload me 更狠

但VB也结束了,估计不是VB有问题就是试图访问内存地址了

这个绝对不是调用API,因为调用API要事先声明的.我认为是FORM_UNLOAD()这已经是个退出的事件了,而你又用了一个END故退出了VB.而且你也犯了个错误.在这个事件当中你有用到参数,所以你要先判断一下CANCEL是否为1后才关闭窗体,这里最好用UNLOAD ME会好一点.
我没具体运行过纯属分析而已.

调用什么API了吧?不然不会这样