你的实验是什么?
Set obj = Nothing
只能将obj的引用清除,当然不能理解为清除对象。然而由于引用计数器,如果obj是对这个对象最后一个引用的话,清除应用就会自动释放对象

解决方案 »

  1.   

    看看IUnknown的功能你就知道了
      

  2.   

    set object=nothing只是表示我(object)不用了,并不表示会是否实例,只有没有任何人引用后才会自动是否,你可以这样试验:
    Sub Main()
       Dim Obj1 As Class1
       Dim Obj2 As Class2   DEBUG.PRINT "1"
       Set obj1=New Class1
       DEBUG.PRINT "2"
       Set obj2=obj2
       DEBUG.PRINT "3"
       Set Obj1=Nothing
       DEBUG.PRINT "4"
       Set Obj2=Nothing
    END SUBClass1:
       Private Sub Class_Initialize()
        Debug.Print "Class_Initialize"
    End SubPrivate Sub Class_Terminate()
        Debug.Print "Class_Terminate"
    End SubOutput:
    1
    Class_Initialize
    2
    3
    4
    Class_Terminate