私は、従来の VB6 Winform アプリに変更を加える任務を負っています。私が見つけたのは、このアプリが不必要に複数の DLL に分割されていることです (一部の DLL は単なる 2 つのクラスでした)。そのため、いくつかの DLL をメイン プログラムに統合する作業を行っていますが、ヘルプが必要な問題に遭遇しました。
dll の 1 つに、CTest(Test.cls) というクラスが含まれていました。メインプログラムは、次のコード行でそれを使用しました。strProgId は、別の DLL に名前を付ける文字列です。
Dim objTest As CTest
Set objTest = CreateTestObject(strProgId)
Public Function CreateTestObject(strProgId As String) As Object
10 On Error GoTo ErrorHandler
20 Set CreateTestObject = CreateObject(strProgId)
30 Exit Function
ErrorHandler:
40 UpdateErrorInfo "CreateTestObject", "Globals", strProgId
50 HandleError
End Function
CTestの内容はこちら
Option Explicit
Private m_strName As String
Private m_strDescription As String
Private m_cnnADO As ADODB.Connection
Public Property Get Name() As String
10 Name = m_strName
End Property
Public Property Let Name(strNewName As String)
10 m_strName = strNewName
End Property
Public Property Get Connection() As ADODB.Connection
10 Set Connection = m_cnnADO
End Property
Public Property Set Connection(cnnADO As ADODB.Connection)
10 Set m_cnnADO = cnnADO
End Property
Public Property Get Description() As String
10 Description = m_strDescription
End Property
Public Property Let Description(strNewDescription As String)
10 m_strDescription = strNewDescription
End Property
Public Function Run(ByVal strSTMType As String, _
instInstruments As CInstruments, objResults As CTestResults) As Boolean
End Function
CTest がまだ DLL の一部であり、メイン プログラムで CTest への参照がある場合、エラーなしで CreateTestObject 行を通過します。クラスをメイン プログラムに取り込むと、型の不一致エラーがスローされます。
どんな助けでも大歓迎です、事前に感謝します。