【发布时间】:2020-04-10 21:23:00
【问题描述】:
我有一个返回数组的 COM 对象函数。
此代码有效
Dim a
a = obj.Foo
MsgBox a(0)
这段代码表示没有枚举。这是真的。
MsgBox obj.Foo(0)
这也没用
MsgBox (obj.Foo)(0)
问题在于 Foo 函数是一个简单的属性。
有直接访问数据成员的语法吗?
编辑:只是为了明确函数工作正常 IsArray(obj.Foo) 返回 true!
【问题讨论】:
-
您应该能够执行
obj.Foo(0).get()或obj.Foo(0).FirstOrDefault()之类的操作。我不完全确定你是如何得到结果的,因为我不是 vb 专家,但我相信应该有一些东西可以按照我的建议调用。 -
@AliBeyit 不在 VBScript 中,你不能。
-
这取决于 COM 对象返回的数据类型,VBScript 需要
VT_ARRAY,因此您需要编组 COM 可见的返回类型。 -
数组是一个 SAFEARRAY 的 VARIANTs。否则第一种方法行不通。
标签: vbscript automation com