查看: 60  |  回复: 0
  VB6 过程参数 arr() As Byte 不能用ByVal
楼主
发表于 2025年12月22日 16:57

在 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


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2026 MaNongKu.com