Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO

Post Reply
Cgallegoa
Posts: 335
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO

Post by Cgallegoa »

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

#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-20.07, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by karinha »

Code: Select all

#include "hbcompat.ch"
 

Code: Select all

#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
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by cnavarro »

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


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

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Cgallegoa
Posts: 335
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by Cgallegoa »

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-20.07, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by karinha »

João Santos - São Paulo - Brasil
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by cnavarro »

Ok, Carlos, por aquí estaré
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Cgallegoa
Posts: 335
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by Cgallegoa »

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-20.07, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by cnavarro »

Asi es, Carlos, dame un correo
Cristobal
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Cgallegoa
Posts: 335
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by Cgallegoa »

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-20.07, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
Posts: 335
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by Cgallegoa »

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

Carlos Gallego

*** FWH-20.07, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by cnavarro »

Carlos, ahora te envío la clase modificada ( el fichero .obj ) para que lo sustituyas en tu lib
_ 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 )
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by cnavarro »

Enviado a tu correo
Borra tu correo del post anterior, bueno, con tu permiso ya lo borro yo
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Cgallegoa
Posts: 335
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: Retomando el hilo me tropiezo con HB_HHASKEY

Post by Cgallegoa »

Cristobal, perfecto. Funcionó de maravilla :D

Una abrazo y muchas gracias.
Saludos,

Carlos Gallego

*** FWH-20.07, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO

Post by cnavarro »

Me alegro,
Otro abrazo para ti
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply