从函数返回给自定义类型的数组赋值

本文关键字:数组 赋值 类型 自定义 函数 返回 | 更新日期: 2023-09-27 18:13:23

我已经构造了一个c# DLL,它使用一个自定义对象(称为PropertyObject)来存储一些数据。我可以通过这个通过VB6和使用它很好。但是,我有一个返回类型为PropertyObject的数组的函数,并且我不能为我的生命将这个返回的数组分配给Dim med数组。代码相当简单,如下所示:

Dim PObject As New PCom
Dim PropObj() As PropertyObject
PropObj = PObject.GetPropertyObjects()

当我调用这个时,我得到Run-time error '13': Type mismatch。尽管GetPropertyObjects返回一个PropertyObject()数组。是否缺少一些东西,或者我需要一些疯狂的东西,比如扩展来支持自定义数组类型?

从函数返回给自定义类型的数组赋值

在VB6中,"原生数组"类型系统和"COM对象"类型系统真的不能很好地一起工作。有时候你不得不使用一些技巧来强迫VB6运行时做你想做的事情。

在试图将方法返回值重新解释为数组之前,尝试将其赋值给中间变量,例如

Dim PObject As New PCom
Dim PropVar As Variant
Dim PropObj() As PropertyObject
PropVar = PObject.GetPropertyObjects()
PropObj = PropVar

即使这没有区别,您至少能够调试值的确切数据类型。: -)

另外,尝试从方法调用的末尾删除(),它可能会对VB6如何解释数据产生影响。