Page 1 of 1

Gestion Errores FWH 0906

PostPosted: Thu Aug 27, 2009 9:10 am
by Biel EA6DD
En una aplicación compilada con la versión 0906, al producirse un error, no aparece la ventana de error, y el efecto es que la aplicacion se queda colgada, puedo cerrar la ventana principal, pero el proceso permanece activo en windows.
Me he vuelto loco buscando, hasta que se me ocurrio compilar con la version FWH 0905, y el problema era un fallo del programa que provocaba un error al no encontrar un alias abierto, en la 0905 el gestor de errores se comporta ok, salta el error e informa de la pila de llamadas.

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 8:08 am
by Biel EA6DD
A nadie le ha pasado.
Teien que ver con las librerias que estoy linkando?
    %C_LIB_INSTALL%\c0w32.obj=1
    C:\FW\0906\FWH\LIB\FiveH.lib=2
    C:\FW\0906\FWH\lib\FiveHC.lib=3
    %HB_LIB_INSTALL%\hbrtl.lib=4
    %HB_LIB_INSTALL%\hbvm.lib=5
    %HB_LIB_INSTALL%\gtgui.lib=6
    %HB_LIB_INSTALL%\hblang.lib=7
    %HB_LIB_INSTALL%\hbmacro.lib=8
    %HB_LIB_INSTALL%\hbrdd.lib=9
    %HB_LIB_INSTALL%\rddcdx.lib=10
    %HB_LIB_INSTALL%\rddfpt.lib=11
    %HB_LIB_INSTALL%\hbsix.lib=12
    %HB_LIB_INSTALL%\rddntx.lib=13
    %HB_LIB_INSTALL%\hbcommon.lib=14
    %HB_LIB_INSTALL%\hbpp.lib=15
    %HB_LIB_INSTALL%\hbcpage.lib=16
    %HB_LIB_INSTALL%\hbwin.lib=17
    %C_LIB_INSTALL%\CW32.LIB=18
    %C_LIB_INSTALL%\IMPORT32.LIB=19
    %C_LIB_INSTALL%\WS2_32.LIB=20
    %C_LIB_INSTALL%\PSDK\odbc32.lib=21
    %C_LIB_INSTALL%\PSDK\nddeapi.lib=22
    %C_LIB_INSTALL%\PSDK\iphlpapi.lib=23
    %C_LIB_INSTALL%\PSDK\msimg32.lib=24
    %C_LIB_INSTALL%\PSDK\rassapi.lib=25
    %C_LIB_INSTALL%\wininet.lib=26
    %HB_LIB_INSTALL%\hbziparc.lib=27
    %HB_LIB_INSTALL%\hbmzip.lib=28
    %HB_LIB_INSTALL%\hbzlib.lib=29
    %HB_LIB_INSTALL%\xhb.lib=30

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 9:33 am
by Antonio Linares
Biel,

Si mal no recuerdo, se localizó y se solucionó :-)

Por favor prueba FWH\samples\TestErro.prg. Aqui salta bien el gestor de errores en ese ejemplo.

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 10:52 am
by Biel EA6DD
Antonio,
el ejemplo se comporta Ok, si fuerzo un error en mi programa, depende del lugar.

En este caso donde no funciona es si tengo un error en una funcion que es llamada desde el codeblock bRead de la clase tSocket.

Intentare hacer un ejemplo autocontenido.

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 12:22 pm
by Antonio Linares
Biel,

Algunos codeblocks de los sockets no permiten mostrar ni MsgInfo() o similares, ni diálogos. Posiblemente sean procesos de Windows que no permiten que se interrumpan con interacción del usuario.

En todo caso, podrias cambiar el gestor de errores antes de usarlos, y hacer que generen un fichero en disco sin mostrar ningun diálogo.

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 1:21 pm
by Biel EA6DD
Es complicado el hacer un ejemplo autocontenido.
Lo que comentas puede que sea el motivo, pero si compilo y linko con FWH0905, si que aparece la ventana de error.
Hay algún cambio entre estas dos versiones que pueda afectar.

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 2:46 pm
by Biel EA6DD
El problema está en la clase xBrowse.
Code: Select all  Expand view
#include "FiveWin.ch"
#include "xBrowse.ch"
STATIC oSocket
FUNCTION Main()
   LOCAL oWnd,oSocket,cIp,oBrw
   LOCAL ADir:=Directory('*.*')
   DEFINE WINDOW oWnd

   oBrw:=txBrowse():New(oWnd)
   WITH OBJECT oBrw
      :nMarqueeStyle       := MARQSTYLE_HIGHLROW
      :nColDividerStyle    := LINESTYLE_BLACK
      :lColDividerComplete := .T.
      :SetArray(Directory('*.*'))
      *--
      :aCols[1]:cHeader:='Titulo'
      *
      :CreateFromCode()
   END
   oWnd:oClient:=oBrw

   ACTIVATE WINDOW oWnd ON INIT CrtSocket()
RETURN NIL

FUNCTION CrtSocket()
   oSocket         :=tSocket():New(23)
   oSocket:bConnect:={|| Falla(),MsgInfo('Conecta')}
   oSocket:Connect(GetHostByName('eadx.net'))
RETURN NIL

FUNCTION falla()
   MsgInfo( "An error is going to be generated", "Press to continue" )
   USE NotFound
RETURN NIL

Este código compilado con FWH0905, visualiza el dialogo de error. Compilado con FWH0906, no visualiza el dialog de error, el aplicativo se cuelga, la ventana puede cerrarse, pero el proceso queda activo en el administrador de tareas.

Si quitamos el browse, y compilamos con FWH0906, visualiza el dialogo de error.
Code: Select all  Expand view
#include "FiveWin.ch"
STATIC oSocket
FUNCTION Main()
   LOCAL oWnd,oSocket,cIp,oBrw
   LOCAL ADir:=Directory('*.*')
   DEFINE WINDOW oWnd

   ACTIVATE WINDOW oWnd ON INIT CrtSocket()
RETURN NIL

FUNCTION CrtSocket()
   oSocket         :=tSocket():New(23)
   oSocket:bConnect:={|| Falla(),MsgInfo('Conecta')}
   oSocket:Connect(GetHostByName('eadx.net'))
RETURN NIL

FUNCTION falla()
   MsgInfo( "An error is going to be generated", "Press to continue" )
   USE NotFound
RETURN NIL

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 5:01 pm
by Antonio Linares
Biel,

Puedes probar a enlazar en tu ejemplo el fichero xbrowse.prg de la version 9.05 ? gracias

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 5:13 pm
by Biel EA6DD
Compilado con FW0906, y añadido al proyecto xBrowse 0905, funciona ok, aparece el dialogo de error.

Re: Gestion Errores FWH 0906

PostPosted: Tue Sep 01, 2009 7:13 pm
by Antonio Linares
Biel,

gracias por las pruebas :-)

Ahora faltaria comparar xbrowse 9.05 y 9.06 y ver de donde viene el problema...

y sobre todo ver si con 9.08 el problema persiste o no

Re: Gestion Errores FWH 0906

PostPosted: Wed Sep 02, 2009 8:40 am
by Biel EA6DD
Antonio Linares wrote:Biel,

gracias por las pruebas :-)

Ahora faltaria comparar xbrowse 9.05 y 9.06 y ver de donde viene el problema...

y sobre todo ver si con 9.08 el problema persiste o no

Bueno despues de un buen tiempo revisando la clase xBrowse y txBrwColumn, el problema está en el metodo Value de la clase txBrwColumn.
No se si está arreglado en la versión actual, pero los cambios introducidos en este metodo en la ver 9.06, son los causantes de que no aparezca el dialog de error.