VB6:使用字符串时可能导致溢出错误的原因是什么?

时间:2010-09-06 03:01:42

标签: vb6 string overflow

在VB6中,出现溢出错误的可能原因是什么?我正在使用字符串。

是RAM还是硬盘空间?或者它是VB6内部的东西?

2 个答案:

答案 0 :(得分:2)

我将在黑暗中采取刺戳,一些代码将有助于Hogan说。通常,当VB6处理数学公式中的整数或长整数时,字符串会发生溢出错误,结果对于整数或长整数来说太大了。

根据公式的性质,您可以通过在末尾添加“.0”强制系统将数字用作浮点来避免问题。否则使用各种Cxxx函数显式转换数字到具有更大范围的类型。

您考虑的一点是浮点不如整数整数精确,因此请确保在进行转换时不会丢失所需的精度。

答案 1 :(得分:1)

另一个'刺',因为没有提供代码......

以下将产生溢出错误:

Dim x as integer
x = len(longstring)   'longstring over 32,768 characters in length

会导致溢出错误。

Dim x as long
x = len(longstring)   'longstring over 32,768 characters in length

工作正常。

Microsoft支持here溢出的另一个示例:

修改

更微妙的情况会让你措手不及:

您尝试在计算中使用数字,并且该数字被强制转换为整数,但结果大于整数。

Dim x As Long
x = 2000 * 365 ' Error: Overflow

要解决此问题,请键入数字,如下所示:

Dim x As Long
x = CLng(2000) * 365