3

次のように COM に公開されるクラス ライブラリがあります。

<ComClass(SomeClass.ClassId, SomeClass.InterfaceId, SomeClass.EventsId)>
Public Class SomeClass

    Public Const ClassId As String = "GUID1"
    Public Const InterfaceId As String = "GUID2"
    Public Const EventsId As String = "GUID3"

    Public Sub SomeMethod(ByVal ParamArray values() As Object)
        ''//Some Code Here    
    End Sub
End Class

次に、 regasm /tlb /codebase を使用して登録しました。すべてのメソッドとプロパティは VBA/VB6 で正しく動作しているように見えますが、ParamArray を使用してメソッドにアクセスしようとすると、イベント コンパイルが行われません。エラーが発生します:

コンパイル エラー:

関数またはインターフェイスが制限付きとしてマークされているか、関数が Visual Basic でサポートされていないオートメーション型を使用しています。

このメソッドを適切に公開して、このように使用できるようにするにはどうすればよいですか?:

SomeClass.SomeMethod 1, 2, 3
4

1 に答える 1

3

この関数は、Visual Basic でサポートされていないオートメーション タイプを使用しています。

お金はそこで止まります.VB6にはパラメータ配列に相当するものはありません. ParamArray キーワードを削除します。VB6 コードはバリアントの配列を渡す必要があります。クラスの再設計を検討してください。

于 2010-07-28T17:36:04.503 に答える