Page 1 of 1

Ejemplo script .HRB

Posted: Wed Nov 27, 2019 10:10 pm
by buzonjmartial
Buenas noches,

¿ Alguien sabría donde encontrar un ejemplo de ejecutar un fichero .HRB que contiene una clase ?

Necesito una clase de mi aplicación sacarla fuera del ejecutable xailer, en un fichero tipo dll o .hrb para certificar que no se modifica.

El ejemplo de dll de Xailer que encuentro en los samples, veo que hay que acompañarla de una Xailerlib.dll adicional y preferiría hacerlo en un único fichero.

Gracias de antemano,

Re: Ejemplo script .HRB

Posted: Thu Nov 28, 2019 9:57 am
by ignacio
buzonjmartial wrote:Buenas noches,

¿ Alguien sabría donde encontrar un ejemplo de ejecutar un fichero .HRB que contiene una clase ?

Necesito una clase de mi aplicación sacarla fuera del ejecutable xailer, en un fichero tipo dll o .hrb para certificar que no se modifica.

El ejemplo de dll de Xailer que encuentro en los samples, veo que hay que acompañarla de una Xailerlib.dll adicional y preferiría hacerlo en un único fichero.

Gracias de antemano,


Code: Select all

#define HB_HRB_BIND_DEFAULT      0x0   /* do not overwrite any functions, ignore
                                          public HRB functions if functions with
                                          the same names already exist in HVM */

#define HB_HRB_BIND_LOCAL        0x1   /* do not overwrite any functions
                                          but keep local references, so
                                          if module has public function FOO and
                                          this function exists also in HVM
                                          then the function in HRB is converted
                                          to STATIC one */

#define HB_HRB_BIND_OVERLOAD     0x2   /* overload all existing public functions */

#define HB_HRB_BIND_FORCELOCAL   0x3   /* convert all public functions to STATIC ones */

#define HB_HRB_BIND_MODEMASK     0x3   /* HB_HRB_BIND_* mode mask */

#define HB_HRB_BIND_LAZY         0x4   /* lazy binding with external public
                                          functions allows to load .hrb files
                                          with unresolved or cross function
                                          references */
....

   IF !Empty( pHrb := hb_hrbLoad( HB_HRB_BIND_DEFAULT, cFile ) )
      hb_hrbDo( pHrb )
      hb_hrbUnload( pHrb )
   ELSE
      MsgAlert( "Error en carga de fichero: " + CRLF + CRLF + cFile )
   ENDIF


Saludos

Re: Ejemplo script .HRB

Posted: Thu Nov 28, 2019 12:41 pm
by buzonjmartial
Gracias Ignacio,

pero mi pregunta es:

Después de hb_hrbDo( pHrb ) y antes de hb_hrbUnload( pHrb ),

¿ puedo usar la clase que está definida en el .hrb directamente o tengo que poner algún código más para usar sus métodos ?

Re: Ejemplo script .HRB

Posted: Thu Nov 28, 2019 1:23 pm
by ignacio
Hola,

Por supuesto. Bien usando una macro o indicando un enlace dinámico

#include "Xailer.ch"
DYNAMIC TMiClase

Saludos

Re: Ejemplo script .HRB

Posted: Thu Nov 28, 2019 1:41 pm
by buzonjmartial
Ok!

Muchas gracias,