求资料:vb6应用程序退出流程(内部断后工作过程)
vb6应用程序,用户点击窗口上的X后,管理模块发出事件 Form_QueryLoad, Form_Load 然后用户响应后,管理模块开始卸载窗体,清除一些对象。。。释放内存。。。等等。
本人需要这个过程的详细步骤。。。。管理模块到底是咋工作的。。。哪些对象、数据等是管理模块释放的,哪些必须由应用程序自己释放。。。。。。。
网上完全找不到这方面的资料。。。。。。。。。
[解决办法]
卸载窗体是有顺序的,严禁使用For each .. in Forms 卸载窗体,特别是各窗体引用了对象之后。先卸载哪些窗体,后卸载哪些窗体,确定好,依次Unload。一般说来,在卸载窗体之前,要先清空所有对象,消除各窗体之间对象的引用关系,卸载HOOK,卸载子类化等,准备工作做完之后,就可以依次Unload了。
需要注意的是,MSDN上有说明:在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。
[解决办法]
看本机的 MSDN 帮助 Visual Basic 窗体的存活期
在线版本 Life Cycle of Visual Basic Forms