内存有泄漏。最简单的办法试试,在一个win2000机器上,开“任务管理器”->"性能"。让它on top。然后开你的程序,运行一步,关闭一下程序。看看哪一步对内存影响大,且关闭了还退不出。
再到程序中下断点看吧。
还有可能是vb6自身的问题:
   在VB6中对象是在最后引用移除后被终止的。换成另外一句话说,当没有其它代码引用这个对象的时候,这个对象将自动终止。具体触发这个终止事件的是Class_Terminate。这种方法是使用引用计数来决定对象是否被终止的,是VB的一个直接的产品,它跟COM有紧密的联系。
  所以我们在需要终止这个对象的使用就调用Class_Terminate事件,使得很容易控制对象。但是它也有不足之处。很明显地,虽然在两个对象之间创建循环引用是很容易,但是它们将在内存中永远地被运行。这正是在VB6中其中一种导致内存泄漏的缺陷。
  这个内存泄漏问题在VB6以前的版本中是无法克服的。在VB6中,循环引用只发生在不同组件上。在VB6中,由相同的组件中的类创建而来的类将被自动终止,即使它们有循环引用。但是,如果对象来自不同的组件,循环引用问题就依然存在。这个是个很大的问题,它给许多VB开发人员带来了麻烦。所以,在VB6中程序不得不寻求各种方法来终止对象。
  换句话说,你找到哪一步发生泄漏后,找别的方法来终止占据内存的对象吧!