作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个像这样暴露给 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 访问方法时,它不会编译事件。我收到错误:
Compile error:
Function or interface marked as restricted, or the function uses an Automation type not suppport in Visual Basic.
我需要做什么才能正确公开此方法以便我可以像这样使用它?:
SomeClass.SomeMethod 1, 2, 3
最佳答案
the function uses an Automation type not supported in Visual Basic.
问题到此为止,VB6 中没有等效的参数数组。删除 ParamArray 关键字。 VB6 代码必须传递一个变体数组。令人不快,请考虑重新设计您的类(class)。
关于.net - ParamArray 不适用于 COM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354807/
我是一名优秀的程序员,十分优秀!