在VB6中处理Variant类型的正确方法是什么?

时间:2016-01-06 15:18:27

标签: vb6 vb6-migration

我有一个DLL(目前无法访问),其中函数返回Variant()

理论上,这个变体应该返回一个错误数组(如果发生这种情况)。

Dim iresult

iresult = object.functioncall()

我试图抓住这个结果集是否为空。我现在得到的是:

?类型名(iresult)
变体()
?UBOUND(iresult)
 1
?LBOUND(iresult)
 0
?的isEmpty(iresult) 假
?ISNULL(iresult)

?IsArray的(iresult)

任何进入iresult(1)或iresult(0)或循环的尝试都会给我一个超出范围错误的下标。我可以解决数组是空的,但如果它包含我需要得到的东西。

欢迎任何建议。谢谢。

1 个答案:

答案 0 :(得分:0)

访问代码后,我意识到部分问题是返回的数组是2维。但无论如何我都作弊,因为数组可能变空,Variant不会识别它是空的还是空的。

重复通过返回的Variant(它总是以数组或类型的形式返回),我抓住"超出范围"错误并使用我的代码。如果它确实重申那么我也会没事的。

感谢您的帮助。