Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO

Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO

Postby Cgallegoa » Thu Nov 28, 2019 4:58 pm

Hola amigos, un fuerte abrazo para todos. Vuelvo a mis caminos de programador.

Actualicé a la última versión de FWH y al intentar compilar el ejemplo BLOCKCHAIN.PRG obtengo el siguinte error:

Error: Unresolved external '_HB_FUN_HB_HHASKEY' referenced from C:\FWH\LIB\FIVEHX.LIB|TBLOCKCHAIN


Le he dado la vuelta pero no encuentro solución.

Utilizo XHARBOUR, Borland 7.3 y PellesC, y sé que esto se debe a las diferencias entre Harbour y xHarbour,

Probé con
Code: Select all  Expand view  RUN
#ifdef __XHARBOUR__
   #xtranslate hb_HHasKey( [<x,...>] )         => HHasKey( <x> )
#endif
 

pero no me funcionó.

Supongo que esto es debido a que la Clase TBlockchain, en donde se usa HB_HHASKEY, está contenida en FIVEHX.LIB, y debe estar programada con la sintaxis de HARBOUR. En la actualización a FWH 19.09 no se incluye el código de la clase por lo que no puedo modificarla para compatibilizarla con XHARBOUR.

Me preocupa que algunas de las nuevas clases de los últimos siete años no queden a mi alcance por incompatibilidad con XHARBOUR

¿ Alguna sugerencia de cómo se puede resolver ?
Last edited by Cgallegoa on Thu Nov 28, 2019 10:55 pm, edited 1 time in total.
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby karinha » Thu Nov 28, 2019 5:10 pm

Code: Select all  Expand view  RUN

#include "hbcompat.ch"
 


Code: Select all  Expand view  RUN

#ifdef __XHARBOUR__
   ...
   /* Hash item functions */
   #xtranslate hb_Hash( [<x,...>] )            => Hash( <x> )
   #xtranslate hb_HHasKey( [<x,...>] )         => HHasKey( <x> )
   #xtranslate hb_HPos( [<x,...>] )            => HGetPos( <x> )
   #xtranslate hb_HGet( [<x,...>] )            => HGet( <x> )
   #xtranslate hb_HSet( [<x,...>] )            => HSet( <x> )
   #xtranslate hb_HDel( [<x,...>] )            => HDel( <x> )
   ...
#else
   ...
   /* Hash item functions */
   #xtranslate Hash( [<x,...>] )           => hb_Hash( <x> )
   #xtranslate HHasKey( [<x,...>] )        => hb_HHasKey( <x> )
   #xtranslate HGetPos( [<x,...>] )        => hb_HPos( <x> )
   #xtranslate HGet( [<x,...>] )           => hb_HGet( <x> )
   #xtranslate HSet( [<x,...>] )           => hb_HSet( <x> )
   #xtranslate HDel( [<x,...>] )           => hb_HDel( <x> )
   ...
#endif
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7846
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby cnavarro » Thu Nov 28, 2019 6:23 pm

Pon esto en tu código, y prueba
Veré de añadir ese #xtranslate hb_HHasKey( [<x,...>] ) => HHasKey( <x> ) al prg de la clase
Y no te preocupes, cualquier cosilla que te encuentres se resolverá

Code: Select all  Expand view  RUN


Function hb_HHasKey( x, cKey  )
Return HHasKey( x, cKey )

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby Cgallegoa » Thu Nov 28, 2019 6:55 pm

João y C.Navarro, gracias por la respuesta.

Probé sus sugerencias pero el problema persiste.

El asunto es que el ejemplo que viene en FWH\Samples, "blockchain.prg", crea una instancia de TBlockChain():New() para ejemplificar cómo usar esta clase. Es TBlockChain la que llama internamente a la función HB_HHASKEY.

Entonces, para que lo que me sugieren funcione debería adicionarlo en la Clase TBlockChain, cuyo código no está disponible , y no en el ejemplo "blockchain.prg".

A ver si Antonio me tira una mano.
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby karinha » Thu Nov 28, 2019 7:23 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7846
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby cnavarro » Thu Nov 28, 2019 8:27 pm

Ok, Carlos, por aquí estaré
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby Cgallegoa » Thu Nov 28, 2019 9:37 pm

João gracias por la guía. No encontré la solución, pero me guió hacia Cristobal Navarro, autor de la Clase.
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby cnavarro » Thu Nov 28, 2019 10:01 pm

Asi es, Carlos, dame un correo
Cristobal
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby Cgallegoa » Thu Nov 28, 2019 10:08 pm

Cristobal, veo que tú fuiste el autor de la clase TBLOCKCHAIN.

La clase está integrada a FIVEHX.LIB en el instalador de FWH-19.09, pero no está incluído su correspondiente código.

El ejemplo BlockChain.prg crea una instancia de TBlockChain() y es dentro de la clase que se definen los HASH, por lo tanto es allí donde se hace el llamado a la function HB_HHASKEY() que es propia de HARBOUR, Su equivalente en XHARBOUR es HHASKEY().

En virtud de que la carga de los hash se instanció dentro de TBlockChain, el hacer el "#xtranslate hb_HHasKey( [<x,...>] ) => HHasKey( <x> )" dentro del "prg" del ejemplo, BlockChain.prn, no funciona. Creo que el "xtranslate debería ser en el "prg" en donde está TBlockChain, pero como indiqué, el código fuente de la clase no está incluído en el instalador de FWH-19.09.

Las preguntas son: si hay alguna forma de obligar a hacer el "xtranslate" fuera del prg causante del entuerto :lol: , o si me puedes facilitar el código de la clase para hacerle la adecuación y que se pueda utilizar con XHARBOUR, o si Antonio Linares pudiera ayudarme.

Gracias por tu ayuda
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby Cgallegoa » Thu Nov 28, 2019 10:09 pm

Cristobal,
<micorreo> que ha sido borrado por el moderador ( Cristobal )
Muchas gracias
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby cnavarro » Thu Nov 28, 2019 10:12 pm

Carlos, ahora te envío la clase modificada ( el fichero .obj ) para que lo sustituyas en tu lib
Los cambios ya los he subido al repositorio por lo que serán publicados en la próxima versión de Fw
Cualquier cosa, ya sabes, por aqui o a mi mail

Pd.: para modificar la lib -> C:\borland\bcc7\bin\Tlib FIVEHX.LIB -+ TBlockChain.obj

( Haz una copia de seguridad de la LIB original por si acaso )
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby cnavarro » Thu Nov 28, 2019 10:17 pm

Enviado a tu correo
Borra tu correo del post anterior, bueno, con tu permiso ya lo borro yo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Postby Cgallegoa » Thu Nov 28, 2019 10:54 pm

Cristobal, perfecto. Funcionó de maravilla :D

Una abrazo y muchas gracias.
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO

Postby cnavarro » Thu Nov 28, 2019 10:56 pm

Me alegro,
Otro abrazo para ti
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], JoseAlvarez and 54 guests