VB6 过程参数 arr() As Byte 不能用ByVal在 Visual Basic 6.0 (VB6) 中,当你遇到“过程参数 arr() As Byte 不能用 ByVal”的错误时,通常是因为你在尝试将一个数组作为参数传递给一个子程序或函数时使用了 ByVal 关键字。在 VB6 中,数组默认是通过引用传递的,这意味着如果你想要通过值传递(即复制整个数组而不是传递其引用),你不能直接使用 ByVal 关键字。
可以直接使用:
Option Explicit
Private Sub Command1_Click()
Dim arrA(0) As Byte
'Dim arrA$ '会显示重复声明,无效
Call s_1(arrA)
Debug.Print arrA(0)
Call s_2(arrA)
Debug.Print arrA(0)
'Call s_3(arrA) '会提示ByRef参数类型不符
'Debug.Print arrA(0)
End Sub
Private Sub s_1(arrA() As Byte) 'ByVal是错误的,只能用空或ByRef,空=ByRef
arrA(0) = 65
End Sub
Private Sub s_2(ByRef arrA() As Byte)
arrA(0) = 66
End Sub
'Private Sub s_3(arrA As Byte)
'arrA(0) = 67
'End Sub运行结果:
65
66