我有一个引用 VB6 旧版 DLL 的 .NET 应用程序。旧版 DLL 有一个带有公共方法的类。在这个公共方法中,它试图按名称查找现有表单,或者如果它不存在则创建它:
Set objForm = GetForm(strFormName)
If objForm Is Nothing Then
'Creates a new instance of the form
Set objForm = VB.Forms.Add(strFormName)
End If
...在哪里GetForm
:
Private Function GetForm(ByVal strFormName As String) As Form
Dim objForm As Form
For Each objForm In VB.Forms
If objForm.Name = strFormName Then
Set GetForm = objForm
Exit Function
End If
Next
Set GetForm = Nothing
End Function
它在这一行引发了一个错误:
Set objForm = VB.Forms.Add(strFormName)
错误是:
Automation error
The object invoked has disconnected from its clients.
Error#-2147417848(80010108)
请注意,这strFormName
是一个有效的表单名称,并且此公共方法调用几乎一直有效。它只是偶尔会引发此错误。
我想知道是什么导致了这个错误,或者我还能做些什么来进一步追踪它?