Página 1 de 3

Error al salir en VFP9

Publicado: Mar Abr 26, 2011 4:37 pm
por mtorres
Buen dia DADO, tengo un pequeño problema al utilizar tu libreria en VFP9 (Visual FoxPro), yo la estoy utilizando para realizar el timbrado con TimbreFiscal como PAC, no tengo ningun problema haciendo uso de ella, mas bien, el problema que me sucede es por utilizarla, es decir, si me realiza el proceso del timbrado, pero cuando intento cerrar mi sistema, me envia
Fatal error: Exception code=C0000005
, intente hacerle debug y aparecio error de
The instruction at 0x05615a04 referenced memory at 0x05615a04, the memory could not be read
, inmediatamente despues de eso se cierra, ya intente un par de cosas como liberar de forma explicita de la memoria las llamadas a las funciones del DLL, etc, pero el problema continua, alguna idea de porque puede estar sucediendo??, dentro del proceso que realiza tu dll, hay alguna variable que se quede en memoria y quizas por eso me marca el error?, agradeceria cualquier pista que se te ocurra, para darle solucion a esto, de antemano muchas gracias.

Re: Error al utilizar CFDLib en VFP9

Publicado: Mar Abr 26, 2011 10:33 pm
por Dado
mtorres escribió:Buen dia DADO, tengo un pequeño problema al utilizar tu libreria en VFP9 (Visual FoxPro), yo la estoy utilizando para realizar el timbrado con TimbreFiscal como PAC, no tengo ningun problema haciendo uso de ella, mas bien, el problema que me sucede es por utilizarla, es decir, si me realiza el proceso del timbrado, pero cuando intento cerrar mi sistema, me envia
Fatal error: Exception code=C0000005
, intente hacerle debug y aparecio error de
The instruction at 0x05615a04 referenced memory at 0x05615a04, the memory could not be read
, inmediatamente despues de eso se cierra, ya intente un par de cosas como liberar de forma explicita de la memoria las llamadas a las funciones del DLL, etc, pero el problema continua, alguna idea de porque puede estar sucediendo??, dentro del proceso que realiza tu dll, hay alguna variable que se quede en memoria y quizas por eso me marca el error?, agradeceria cualquier pista que se te ocurra, para darle solucion a esto, de antemano muchas gracias.
Se parece mucho al problema que me reportaron aqui y que fue corregido.

Efectivamente, me duele decirlo pero si, habia un objeto que no era liberado correctamente y provocaba esos horribles "Acces Violation" bajo ciertas condiciones.

La solucion fue una actualizacion al codigo. Por favor busca el mail en donde te envie la liga de donde se descarga la libreria y vuelve a descargarla. haz tus pruebas y me avisas si se corrige.

Re: Error al utilizar CFDLib en VFP9

Publicado: Mié Abr 27, 2011 12:58 pm
por mtorres
Buen dia DADO, ya lo baje de nuevo, pero el error continua. :?

Re: Error al utilizar CFDLib en VFP9

Publicado: Mié Abr 27, 2011 1:24 pm
por Dado
mtorres escribió:Buen dia DADO, ya lo baje de nuevo, pero el error continua. :?
El error te aparece con solo abrir y cerrar tu programa?

Si es asi entonces te pediria un favor, al igual que en post que hago referencia les pedia que me "ayudaran a ayudarles" de la siguiente forma:

Podras hacer un ejecutable de lo mas simple que unicamente abra, muestre la ventana con la version de la libreria y me permita cerrarlo, la idea es reproducir el error en mi computadora para hacer pruebas

Otro dato importante : Que Windows tiene las computadoras en las que te marca el error?

Re: Error al utilizar CFDLib en VFP9

Publicado: Mié Abr 27, 2011 3:08 pm
por mtorres
Aqui te paso un exe muy sencillo, un boton que te muestra la version y otro para salir.
Las maquinas en las que he intentado utilizar el sistema/dll es windows 2000 y windows xp

Quedo a tus ordenes para cualquier duda al respecto.

Re: Error al utilizar CFDLib en VFP9

Publicado: Jue Abr 28, 2011 11:46 am
por Dado
mtorres escribió:Aqui te paso un exe muy sencillo, un boton que te muestra la version y otro para salir.
Las maquinas en las que he intentado utilizar el sistema/dll es windows 2000 y windows xp

Quedo a tus ordenes para cualquier duda al respecto.
Por fin pude hacer pruebas, es que no encontraba una PC que tuviera XP, aqui en la chamba ya casi todas son Win 7

Y luego que la encontre me marco error que no encontraba el VFP runtime library.....

Bueno, hice la prueba y.....nada! no marco error, eso en parte no es bueno porque necesito reproducir el problema para hacer pruebas

Dices que descargaste ya la actualizacion? porque el error es MUY PARECIDO al que ya habia corregido, vamos a hacer esto, mandame a mi mail la liga de donde estas descargando la libreria para usar EXACTAMENTE lo mismo y asi rastrear el problema

Re: Error al utilizar CFDLib en VFP9

Publicado: Jue Abr 28, 2011 3:05 pm
por mtorres
hecho, te lo envie

Re: Error al utilizar CFDLib en VFP9

Publicado: Vie Abr 29, 2011 10:34 am
por Dado
@mtorres

Solo para tenerte al tanto........ya encontre el problema, pero es algo medio complejo, resulta que tengo un dilema entre Visual FoxPro y Clarion.

Resulta que si destruyo mis objetos (como debe ser) entonces Clarion repela y marca un access-violation (AV) asi que no los libero y funciona bien.

PERO Visual FoxPro si requiere que los libere, y me pasa que si lo corrijo para un lenguaje el otro falla.

No importa lo que haga siempre estan asi, uno bien y otro con AV

........seguimos en esto, tengo que resolverlo..........

Re: Error al utilizar CFDLib en VFP9

Publicado: Vie Abr 29, 2011 12:55 pm
por mtorres
DADO escribió:@mtorres

Solo para tenerte al tanto........ya encontre el problema, pero es algo medio complejo, resulta que tengo un dilema entre Visual FoxPro y Clarion.

Resulta que si destruyo mis objetos (como debe ser) entonces Clarion repela y marca un access-violation (AV) asi que no los libero y funciona bien.

PERO Visual FoxPro si requiere que los libere, y me pasa que si lo corrijo para un lenguaje el otro falla.

No importa lo que haga siempre estan asi, uno bien y otro con AV

........seguimos en esto, tengo que resolverlo..........
Dado, pues se me ocurren dos cosas para esto

1. Añadir al dll una nueva funcion que permita destruir los objetos y asi nosotros los usuario de tu dll, podemos hacer o no hacer uso de ella segun requerido.
2.- Agregar un parametro mas al *.ini para el timbrado el cual indique si debe destruir los objetos despues de realizado el proceso o no, inclusive puede ser un codigo por cada lenguaje, aunque seria mas sencillo un simple true/false.

Bueno, solo aportando ideas, espero tu resolucion!

Saludos!

Re: Error al utilizar CFDLib en VFP9

Publicado: Dom May 01, 2011 12:30 pm
por Dado
@mtorres

@marcoso

Despues de intentar mil ideas....y que casi ninguna funciono :( la que tome fue la que me proponia mtorres en su punto numero 1

Aqui anexo una prueba del CFDLib.dll CON UNA FUNCION que debe usarse justo en el momento en el que cierras tu programa.

Esta funcion se encarga de destuir (o liberar) los objetos que utilizo en la libreria.

La funcion se llama simplemente FinalizaCFDLib;

Asi que por favor, declara esta funcion igual que declaraste la funcion para leer la version y justo antes que termine tu programa manda a llamar a esta Finalizacion.

Me avisas si funciona para recompilar las versiones definitivas para su descarga.