当我发送时:
Result = CInt(NetApiBufferFree(pBuffer))
我收到(有时)这个错误:
Arithmetic operation resulted in an overflow.
究竟是什么意思?以及我如何解决它?
答案 0 :(得分:10)
这意味着CInt
参数超出Integer
,-0x80000000到0x7FFFFFFF的范围
当NetApiBufferFree
返回错误时会发生错误:错误代码大于0x80000000。
没有unsigned int32类型,因此请使用CLng
代替CInt
。
关于错误来源。您应该找到您获得的错误代码:调用MsgBox或将其记录到文件,或使用断点。接下来找到它的描述。如果它不会帮助您(例如错误将是E_FAIL),请添加代码以检查pBuffer
值是否有效 - 它是否已被某些内容修改,并且还没有释放。添加NetApiBuffer*
来电的记录。
答案 1 :(得分:1)
最佳答案是替换'double'代替'Int16 / Int32 / Int64'
有时候文件转换需要很大的数字.. double永远不会有最大范围。