查看: 503  |  回复: 0
  VB6 Winsock1_DataArrival(ByVal bytesTotal As Long) bytesTotal 是多少?UBound 呢?
楼主
发表于 2024年1月16日 21:55

如果Winsock1_DataArrival(ByVal bytesTotal As Long),那么 bytesTotal 是从0还是1开始的?

答案:bytesTotal 是总体几个字节,比如1个字节。

如果你要做循环,就:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim i As Long
    Dim arrB() As Byte
    ReDim arrB(bytesTotal - 1)
    Winsock1.GetData arrB
    
    Dim b() As Byte
    ReDim b(UBound(arrB))
    For i = 0 To bytesTotal - 1
        b(i) = arrB(i)
    Next

    '等价于下面
    Dim c() As Byte
    ReDim c(UBound(arrB))
    For i = 0 To UBound(arrB)
        c(i) = arrB(i)
    Next
End Sub

结论:

UBound 是从0开始

bytesTotal 是从1开始

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