Page 1 of 1
funciones en xharbour llamadas desde C
Posted: Tue Dec 13, 2005 3:44 am
by goosfancito
Amigos,
Se puede hacer que una funcion creada en xHarbour pueda ser llamada desde un programa creado en C?
Code: Select all
HB_FUNC( MIFUNCION ){
// llamada a funcion que está en xHarbour
}
Posted: Tue Dec 13, 2005 8:53 am
by Antonio Linares
Gustavo,
Si, se puede perfectamente llamar a funciones en PRG desde C, pero siguiendo una serie de reglas, ya que el stack de la máquina virtual no es el stack de C.
Este es un ejemplo de como llamar a PRG desde C:
Code: Select all
#include <hbvm.h>
hb_vmPushSymbol( hb_dynsymGet( "MIFUNCION" )->pSymbol );
hb_vmPushNil();
hb_vmPushString( "hola", strlen( "hola" ) ); // pasamos un parámetro
hb_vmFunction( 1 ); // 1 parámetro pasado
Posted: Tue Dec 13, 2005 10:01 pm
by goosfancito
Antonio,
Gracias, voy a probarlo ahora, porque esto va acarriado a otra pregunta que puse en foro sobre CEM, digamos que la aplicacion en harbour llama a una de C, y esa funcion C tiene que leer una DBF, tonces, haria una funcion en harbour para leer esa DBF y simplemente desde el codigo C llamo a esta.
Me explique?
Posted: Tue Dec 13, 2005 10:35 pm
by goosfancito
Antonio,
Esa parte de codigo, va en mi PRG?
Code: Select all
#include <hbvm.h>
hb_vmPushSymbol( hb_dynsymGet( "MIFUNCION" )->pSymbol );
hb_vmPushNil();
hb_vmPushString( "hola", strlen( "hola" ) ); // pasamos un parámetro
hb_vmFunction( 1 ); // 1 parámetro pasado
donde puedo buscar mas info sobre estos comandos?