如何将一个512byte的长度的byte数组转成 Long

解决方案 »

  1.   

    Dim p As Long
    Dim l(512 / 4 - 1) As Long
    p = VarPtr(Array(0))
    CopyMemory(l(0),byval p,512)
      

  2.   

    Private Sub Command1_Click()
        Dim strhex As String
        Dim inbuff(511) As Byte
        Dim lonsj() As Long
        Dim i As Integer
        Dim ii As Integer
        Dim l As Integer
        For i = 0 To 511
            inbuff(i) = i Mod 256
        Next
        l = UBound(inbuff)
        ReDim lonsj(1 To (l + 1) / 4)
        For i = 0 To UBound(inbuff)
            strhex = strhex & Right("0" & Hex(inbuff(i)), 2)
        Next i
        Text1 = strhex
        '处理接收的数据
        For i = 1 To Len(strhex) Step 8
            lonsj((i + 7) / 8) = Val("&H" & Mid(strhex, i, 8))
        Next
        For ii = LBound(lonsj) To UBound(lonsj)
            Print lonsj(ii)
        Next
    End Sub
      

  3.   

    Dim TemplateData() As Byte         '定义由第一枚指纹和第二枚指纹生成的指纹模板, 大小为512 Byte
    ReDim TemplateData(0 To 511)      '对指纹模板变量TemplateData做初始化, 分配512个BYTE
    'TemplateData 数组里面存放的是一个地址。
    '我想把这个地址拿出来。并把这个地址指向的空间里面的值取出来
      

  4.   

    不知道这个函数StrConv对你有没有用
      

  5.   

    StrConv 取不出来值 我这样。
         Dim j As Integer
         Text1.Text = ""
         For j = 0 To UBound(TemplateData)
            Text1.Text = Text1.Text + Str(TemplateData(j))
         Next j取得的值为:
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 92 30 0 0 2 30 5 36 13 19 11 25 0 0 0 0 0 0 0 0 0 0 109 177 80 193 88 34 102 162 44 43 85 162 18 41 153 1 109 194 208 226 39 193 236 225 86 188 17 225 96 190 209 1 40 27 215 162 44 159 214 130 69 52 233 2 58 64 214 34 53 68 22 98 56 180 84 193 53 184 42 161 46 146 90 66 41 149 89 66 24 155 193 34 20 158 217 2 33 18 155 98 56 28 105 97 62 29 149 66 32 21 193 225 26 22 218 97 72 48 145 225 75 174 169 2 64 24 211 65 61 24 20 162 61 163 105 65 60 34 84 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 90 28 0 0 2 30 5 36 12 18 13 22 0 0 0 0 0 0 0 0 0 0 109 177 80 193 88 34 102 162 43 43 85 162 86 188 17 225 97 62 209 65 24 17 156 193 40 27 215 162 44 159 214 130 69 52 232 226 56 180 84 193 53 184 42 161 51 67 86 225 57 64 214 66 24 155 193 98 20 158 217 2 33 18 155 66 32 21 193 225 26 22 218 97 56 28 41 193 61 157 149 34 45 19 27 33 71 176 210 1 41 21 89 98 75 174 169 2 64 24 211 33 61 24 85 2 61 163 168 225 60 34 84 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      

  6.   


    TemplateData 数组空间首地址:   VarPtr(TemplateData(0))
    取空间里面的值:  TemplateData(0), TemplateData(1), TemplateData(2), ... TemplateData(511)