tiempo solucion run reparar pila insuficiente espacio error ejecuciĆ³n desbordamiento como vb6 integer overflow

vb6 - solucion - espacio de pila insuficiente excel



Error de desbordamiento de VB6 con enteros grandes (3)

en VB6, el tipo entero es un número entero que varía de -32768 a 32767.

Sería mejor usar el tipo Long aquí.

Estoy tratando de establecer un valor entero como tal:

Dim intID as integer intID = x * 10000

Esto funciona bien cuando x es 3 o menos. Pero cuando x es 4, esto me da el error:

tiempo de ejecución error 6 desbordamiento

No entiendo por qué es esto. Puedo configurar intID a 40000 directamente sin ningún problema, por lo que obviamente es capaz de almacenar números grandes.


Usted * no puede establecer un número entero vb6 en 40000 ya que están firmados con números de 16 bits, por lo que +32767 es el máximo.

Long es el tipo de 32 bits.

Sin embargo, como advertencia, si tuviera que:

Dim lngID As Long lngID = 4 * 10000

Todavía obtendrías un desbordamiento ya que los números literales son por defecto de Entero, para corregir eso simplemente escribe uno tan largo con & o envía uno igual de largo usando CLng() :

Dim lngID As Long lngID = 4 * 10000& lngID = 4 * CLng(10000)

Actualización :


En VB, el rango de variables enteras es de -32,768 a 32,767. Si cualquier valor de variable es mayor que este rango en su programa, debe declarar el tipo de datos Long en lugar de Integer.

Dim intID as integer intID = x * 10000 Dim lngID AS Long lngID = x * CLng(10000) '' if 10000 '' whatever you want to be