【问题标题】:VB6: WriteFile with integersVB6:带整数的 WriteFile
【发布时间】:2013-07-06 05:07:12
【问题描述】:

我想将整数数组写入文件。 我有一个将字节写入文件的版本。字节版本工作得很好。 但是,整数数组版本没有。它抛出错误 “写入失败。错误 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

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

感谢您的帮助!

【问题讨论】:

    标签: vb6 io


    【解决方案1】:
    lLen = (UBound(Buffer) - LBound(Buffer) + 1) * 4 '1 integer=4 bytes
    

    应该是

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

    【讨论】:

    • +1 Long 是 VBA 中的 32 位整数。 lenb(v) 将允许您检查。
    猜你喜欢
    • 1970-01-01
    • 2014-07-11
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多