我有一个类库,它公开如下所示的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中不支持的自动化类型。
我需要做什么才能正确地公开这个方法,这样我就可以这样使用它?:
SomeClass.SomeMethod 1, 2, 3发布于 2010-07-28 17:36:04
函数使用Visual中不支持的自动化类型。
责任到此为止,在VB6中没有等效的参数数组。删除ParamArray关键字。VB6代码必须传递一个变体数组。不愉快,考虑重新设计你的课程。
https://stackoverflow.com/questions/3354807
复制相似问题