我使用 Forms Interop Toolkit 创建了一个 .Net ActiveX 控件。
当我在 VB6 项目中使用该控件时,偶尔会出现以下错误:
对象已加载 (360)。
这没有多大意义,因为此错误仅涉及在运行时加载的对象数组,但我的控件不在控件数组中,只是位于表单上。
我使用 Forms Interop Toolkit 创建了一个 .Net ActiveX 控件。
当我在 VB6 项目中使用该控件时,偶尔会出现以下错误:
对象已加载 (360)。
这没有多大意义,因为此错误仅涉及在运行时加载的对象数组,但我的控件不在控件数组中,只是位于表单上。
经过大量搜索,我发现了这个网站,它给出了一个解决方案:
在 Disposed 后强制对控件进行垃圾回收:
在以下方法中(由 Forms Interop Toolkit 模板生成):
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
调用 Dispose 对象。添加一行强制垃圾回收:
ElseIf m.Msg = WM_DESTROY AndAlso Not Me.IsDisposed AndAlso Not Me.Disposing Then
'Used to ensure that VB6 will cleanup control properly
Me.Dispose()
System.GC.Collect() '<-- Add this line
End If