VB6:带有整数的WriteFile

时间:2013-07-06 05:07:12

标签: vb6 io

我想将一个整数数组写入文件。 我有一个将字节写入文件的版本。字节版本工作得很好。 但是,整数数组版本没有。它抛出错误 “写失败。错误1784。”

我不知道我哪里出错了。

这是字节版本:

Public Function WriteBytes(Buffer() As Byte) As Long

    If WriteFile(hFile, _
                 Buffer(LBound(Buffer)), _
                 UBound(Buffer) - LBound(Buffer) + 1, _
                 WriteBytes, _
                 0) Then
     Else
        RaiseError HBF_WRITE_FAILURE
    End If
End Function

但是这个引发了一个错误:

Public Function WriteIntegers(Buffer() As Integer) As Long

    Dim lLen&
    lLen = (UBound(Buffer) - LBound(Buffer) + 1) * 4 '1 integer=4 bytes

    Dim lWritten&        

    If WriteFile(hFile, _
                 Buffer(LBound(Buffer)), _
                  lLen, _
                  lWritten, _
                 0) Then
    Else
        RaiseError HBF_WRITE_FAILURE
    End If

    WriteIntegers = lWritten

End Function

我不确定整数版本中的错误在哪里。 有人看到了吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

lLen = (UBound(Buffer) - LBound(Buffer) + 1) * 4 '1 integer=4 bytes

应该是

lLen = (UBound(Buffer) - LBound(Buffer) + 1) * 2