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 回答