代码之家  ›  专栏  ›  技术社区  ›  Oorang

ParamArray不使用COM

  •  3
  • Oorang  · 技术社区  · 15 年前

    我有一个暴露于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访问该方法时,它不会编译事件。我得到一个错误:

    编译错误:

    我需要做些什么来正确地公开这个方法,以便像这样使用它

    SomeClass.SomeMethod 1, 2, 3
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   Hans Passant    15 年前

    该函数使用了Visual Basic不支持的自动化类型。

    降压就在这里,在VB6中没有参数数组的等价物。删除ParamArray关键字。VB6代码必须传递一个变量数组。不愉快,考虑重新设计你的课程。

    推荐文章