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
は有効なフォーム名であり、この public メソッド呼び出しはほぼ常に機能することに注意してください。このエラーが発生することは非常にまれです。
このエラーの原因を知りたいのですが、さらに追跡するために他に何ができますか?