FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO
Posted: Thu Nov 28, 2019 04: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 (fw): Select all Collapse
#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 ?

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 05:10 PM
Code (fw): Select all Collapse
#include "hbcompat.ch"


Code (fw): Select all Collapse
#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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 06: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 (fw): Select all Collapse
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
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 06: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-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 07:23 PM
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 08: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
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 09: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-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: 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
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: 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-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 10:09 PM

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

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: 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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: 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
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Retomando el hilo me tropiezo con HB_HHASKEY
Posted: Thu Nov 28, 2019 10:54 PM

Cristobal, perfecto. Funcion贸 de maravilla :D

Una abrazo y muchas gracias.

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO
Posted: 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
Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Re: Retomando el hilo me tropiezo con HB_HHASKEY - SOLUCIONADO
Posted: Wed Oct 15, 2025 07:50 AM

Saludos colegas,

Esta funcionalidad est谩 disponible en las actuales versiones de FW?

Algunas empresas nos estan solicitando su implementaci贸n para la trazabilidad de sus transacciones.

Resumen claro y directo sobre la funcionalidad y beneficios de implementar blockchain desde el documento original hasta el asiento contable:

Beneficios

  1. Integridad de datos: Cualquier alteraci贸n en el documento cambia el hash, lo que permite detectar manipulaciones.

  2. Transparencia contable: Cada asiento puede ser auditado contra su documento original sin ambig眉edad.

  3. Seguridad: Los datos quedan protegidos mediante criptograf铆a, sin necesidad de intermediarios.

  4. Trazabilidad: Se puede seguir el ciclo completo del documento, desde su creaci贸n hasta su impacto contable.

  5. Automatizaci贸n de auditor铆as: Facilita la verificaci贸n autom谩tica de documentos y registros contables.

Funcionalidad:

La implementaci贸n de blockchain permite vincular cada documento digital (como una factura escaneada o PDF) con su correspondiente asiento contable mediante un hash criptogr谩fico. Este hash act煤a como una huella digital 煤nica del archivo original. Al registrar ese hash en la transacci贸n contable, se garantiza que:

  1. El documento no ha sido modificado.

  2. Existe una trazabilidad directa entre el soporte documental y el registro financiero

  3. Se puede verificar la autenticidad del documento en cualquier momento.

  4. Para las conciliaciones Bancarias de manera digital, asegurar que el archivo no ha sido alterado luego de su utilizaci贸n desde la conciliaci贸n bancaria digital.