【发布时间】:2013-04-12 15:43:38
【问题描述】:
我一直在试图弄清楚为什么下面的函数在返回时会抛出“类型不匹配”的错误。根据我对 VB6 的了解,这应该没有任何问题,但显然没有。谁能看到我在这里做错了什么并让我知道如何解决它?提前致谢。
Private Function GetByteArray(source As Variant, index As Integer, length As Integer) As Variant
Dim buff() As Byte
ReDim buff(0 To length - 1)
Dim i As Integer
For i = 0 To length - 1
buff(i) = CByte(source(index + i))
Next i
GetByteArray = buff
End Function
【问题讨论】:
-
函数正在尝试返回一个变体,并且您已将 buff 调暗为一个字节。似乎您想从该函数返回一个字节,否则为什么要转换它?除非我误解了这个问题。
-
对,我真正想要的是一个字节数组。如果我想要一个字节,那将非常简单。我基本上遵循support.microsoft.com/kb/317030 中提供的示例。当然,我的来源是一个包含字节数组而不是字符串的 Variant。
-
你如何调用你的函数?具体来说,您传递的
source是什么?究竟是在哪一行得到Type Mismatch错误? -
具体来说,我传入了一个 Variant,其中包含一个从 3rd 方库返回的字节数组。函数返回后立即引发类型不匹配错误。这就是为什么我认为该功能有问题。然而,看起来真正的问题是我对函数结果所做的事情。