Page 1 of 1

error 332

Posted: Wed Jul 04, 2007 5:47 pm
by Leonor Gonzalez
Buenas Tardes:
Hace un par de días tengo algunos clientes que me estan llamando con el siguiente error

FWDISPBEGI (0) Error no recuperable 332: Desbordamiento de la memoria para matrices/cadenas

FWDISPBEGI 0000
TGETL:DISPBEGIN 0000
TGETL:PAINT 0000
(b)TGET 0000
TGETL:HANDLEEVEN 0000
DIALOGBOXI 0000
TDIALOGL:ACTIVATE 0000

Alguien tiene idea de que puede ser.
Gracias.
Leonor

Posted: Wed Jul 04, 2007 6:43 pm
by Antonio Linares
Leonor,

Tienes que plantearte pasar la aplicación a 32 bits usando FWH y Harbour/xHarbour, ya que el error 332 que te aparece es que no tiene suficiente memoria disponible para cadenas/arrays en 16 bits.

Ten en cuenta que una aplicación de 16 bits en Clipper sólo dispone de 64 Ks para arrays y cadenas y rapidamente puedes agotar ese tamaño

Posted: Thu Jul 05, 2007 5:35 pm
by rbecares
Antonio:

Estamos en proceso de migración a Harbour, mientras tanto, qué pista nos podés dar para que "salvemos las papas" por ahora, en pocos meses ya estamos en 32bits.

¿Vos decís que un array determinado se quedó sin espacio para crecer? o el espacio total de arrays es 64k ?

Ya que no tenemos ( o no sabemos como hacer andar bien ) debugger con fivewin, cómo podríamos pescar que array da el error para ver si _ algo la lógica?

Mil gracias.
Ricardo Bécares.-

Posted: Thu Jul 05, 2007 5:55 pm
by Antonio Linares
Ricardo,

Si usais muchas variables públicas, una solución es cambiarlas por una única (ó varias) variables tipo array:

public uno, dos, tres, cuatro, cinco, seis

se cambiaría a:

public aVars

y aVars se haría igual a { <valor de uno>, <valor de dos>, ..., etc }

Si generas un error en la aplicación (por ejemplo, escribe x++) se creará un fichero error.log y al final ves el consumo de variables que tiene la aplicación