Problemas con FWH/HARBOUR

Post Reply
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Problemas con FWH/HARBOUR

Post by Adolfo »

Antonio...

Yo trabajo con xHarbour.com de Febrero 2006 y FWH2.6, uso RMDBFCDX y no he tenido problemas.

A solicitud de una empresa que trabaja con Harbour y FWH28 he empezado a traspasar unos modulos que yo poseo en Xharbour.com para un sistema muy grande que ellos poseen. Sin embargo no he podido hacer absolutamente nada... a continuacion los errores y problemas que he tenido.

1.- Situacion.

FWH28
Fiveh.lib 1.395 kb 17/09/2006 13:35
Fivehc.lib 341 kb 18/09/2006 1.56
Harbour ( version descargada desde Fivetechsoft.com)

El xMate se queja de la inexistencia de GTWIN.LIB, lo mismo Verce.
Al colocar "solo" las libs que vienen con esta version de FWH en los parametros del linkeador, se genera el exe, pero no realiza absolutamente nada.


2.- Situacion.

FWH28
Fiveh.lib 1.395 kb 17/09/2006 13:35
Fivehc.lib 341 kb 18/09/2006 1.56
Harbour ( version descargada desde Harbour-Project.org)

El xMate se queja de referencias externas _hb_ProcessSymbolsEx y de _hb_objHasMessage y no linkea.

Alguna ayuda, que tengo mal.... si lo hago a travez del Buildh.bat, ocurre exactamente lo mismo.

Si el mismo ejemplo lo compilo y linkeo a travez del Xbuild de xHB y mis versiones de Xhb y FWH no tengo problemas.

Agradecido de antemano.
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Al parecer Gtwin.lib dejó de existir. Para que VERCE te deje seguir copia en harbour/lib gtgui.lib como gtwin.lib

Un saludo,
Manuel
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Post by Adolfo »

Manuel..

Si GTWIN "dejo de existir" no deberia eso estar comentado en algun lugar, quizas en el "what's new" o algo parecido... si no es asi.. algo esta mal... o no.

Sin embargo en la version descargada desde Harbour-Project.. si existe y se instala.

Aun con esa version aparecen esas referencias externas y no linkea...

Antonio ?
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Adolfo, lo leí en este mismo foro. Busca por "GTWIN" y encontrarás un montón de referencias. Por ejemplo: http://fivetechsoft.com/forums/viewtopic.php?t=3569

Un saludo,
Manuel
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Adolfo,

1) Renombra GTGUI.lib como GTWIN.lib

En FWH whatsnew.txt:

* New: IMPORTANT: Due to recent changes in Harbour and xHarbour, GTGUI.LIB must be linked instead of GTWIN.LIB.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Post by Adolfo »

Eso era Antonio.... Solucionado.

Sin embargo aun me encuentro con un problema que te habia comentado meses atras... necesito enviar dos CHR(0) a un ACTIVEX, pero no me es posible por lo siguiente. Ejecuta lo siguiente. Uso Harbour (de Fivetechsoft.com) y FWH28 (septiembre) para este ej.

Extension:=chr(2) + Chr(1)
MsgStop(len(Extension),"Extension Len()")
MsgStop(Len(AnsiToWide( Extension )),"Extension Len(AnsiToWide)")
MsgInfo(Len( WideToAnsi(AnsiToWide(Extension))) == Len(Extension))

Resultados 2,5,.T. Todo Bien

Extension:=chr(0) + Chr(1)
MsgStop(len(Extension),"Extension Len()")
MsgStop(Len(AnsiToWide( Extension )),"Extension Len(AnsiToWide)")
MsgInfo(Len( WideToAnsi(AnsiToWide(Extension))) == Len(Extension))

Resultados 2,1,.F. Todo mal

Extension:=Chr(0) + Chr(0)
MsgStop(len(Extension),"Extension Len()")
MsgStop(Len(AnsiToWide( Extension )),"Extension Len(AnsiToWide)" )
MsgInfo(Len( WideToAnsi(AnsiToWide(Extension))) == Len(Extension))

Resultados 2,1,.F. Todo Mal

Por lo que al enviar el String al OCX me falla, ya que no envia nada. Existira otra forma de Enviar los CHR(0) al OCX.
En xHarbour lo Solucione con la Ayuda de la Funcion VTArrayWrapper(), pero ahora lo necesito solo para Harbour..

Gracias de antemano..
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Adolfo,

Por lo visto los dobles ceros son interpretados como final de cadena por las funciones de Windows de conversión a wide.

Una solución sería que guardes el valor de cada byte convertido a wide (dos bytes) y que construyas tu mismo la cadena a enviar:

Code: Select all

   local WCero := AnsiToWide( Chr( 0 ) )
   local WUno  := AnsiToWide( Chr( 1 ) )
   local WDos  := AnsiToWide( Chr( 2 ) )

   local WExtension := WCero + WUno
   ...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Post by Adolfo »

Antonio....

Eso soluciona lo de las pruebas, pero aun no envia bien los CHR(0)..
existira alguna forma de hacer un CHR2(), como para lograr enviar el correcto valor que requiere el OCX, porque segun la descripcion de la funcion en el Codigo fuente, el CHR(0) no envia el valor, sino que el caracter NULL y eso causa mi problema...

Caulquier ayuda sera bienvenida..

Grax....
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
Post Reply