Page 1 of 1
Ayuda en Compilacion en tiempo de ejecucion
Posted: Wed Mar 29, 2017 8:13 pm
by ASESORMIX
Estoy compilando en tiempo de ejecucion y me sale el siguiente error:
Error BASE/6101 Unknown or unregistered symbol: NETIO_CONNECT
Called from HB_HRBLOAD(0)
Called from CREAR_HRB(83)
Called from MAIN(97)
Por favor que alguien me indique como corregirlo.
Gracias
Re: Ayuda en Compilacion en tiempo de ejecucion
Posted: Wed Mar 29, 2017 8:56 pm
by Pablo César
Y tu código ?
Re: Ayuda en Compilacion en tiempo de ejecucion
Posted: Wed Mar 29, 2017 11:46 pm
by ASESORMIX
Un ejemplo...
Lo siguiente es test01.prg
Code: Select all
#include "hmg.ch"
****************************************************************************************************************
Function Main()
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 500 ;
HEIGHT 200 ;
MAIN;
TITLE 'Button Test'
@30,10 BUTTON Button_1 CAPTION "Pueba de Compilación" WIDTH 450 HEIGHT 50 ACTION CREAHRB()
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
****************************************************************************************************************
FUNCTION CREAHRB
ELPRG:="TEST02.PRG"
ELHRB:="TEST02.HRB"
HMG_PATH:=[C:\HMG.3.4.3]
ALTD()
IF FILE(ELPRG)
TXTPRG:=MEMOREAD(ELPRG)
TXTHRB:=hb_CompileFromBuf(TXTPRG,"harbour", "/n", "/i"+HMG_PATH )
MEMOWRIT(ELHRB,sx_encrypt(TXTHRB,"myPaswdKey"))
TXTHRB:=sx_decrypt(MEMOREAD(ELHRB),"myPaswdKey")
nHandle:=hb_hrbload(TXTHRB)
call_func(nHandle,"CONECTA")
hb_hrbunload( nHandle )
ENDIF
RETURN
****************************************************************************************************************
static function call_func( nHandle, cFunc, xPar )
local xRet := HB_HRBGETFUNSYM( nHandle, cFunc )
if empty( xRet )
? "Error load in function " + cFunc
quit
endif
return eval( xRet, xPar )
****************************************************************************************************************
A test01.prg lo convierto en un ejecutable "test01.exe"
Al pulsar el boton este debe compilar a test02.prg y ejecutar la funcion "conecta"
Pero da el error mencionado anteriormente...
y aca esta test02.prg
Code: Select all
PROCEDURE CONECTA
if NETIO_CONNECT("127.0.0.1","2941")
*DBUseArea(.t.,,c_STR_Con,AllTrim(Main.Text_2.Value))
*EDIT EXTENDED
endif
RETURN
Agradezco su ayuda ...
Re: Ayuda en Compilacion en tiempo de ejecucion
Posted: Mon Apr 03, 2017 12:52 am
by Pablo César
Hola te pido un poco más de tiempo. Realmente hé encontrado algunas dificultades.
Y todavia no llegué a una conclusion concreta a no ser que no tiene nad a ver con NETIO_CONNECT en si.
O por lo menos yo no estoy dominando. En todas la veces que usé, hb_CompileFromBuf me ha funcionado, pero ahora hasta con un simples ejemplo de MsgInfo en lugar de NETIO_CONNECT me está dando errores...
Te explico para que no pienses que te abandoné o que yo desisti de ayudarte.
A veces doy mas tiempo a mis aplicaciones mucho más de lo que talvez deberia...
Disculpame mi atrazo.
Re: Ayuda en Compilacion en tiempo de ejecucion
Posted: Mon Apr 03, 2017 2:20 am
by ASESORMIX
Hola.
Gracias por su interes en esto.
Y quiero informar lo siguiente:
Que si en test01.prg se hago referencia a la function netio_connect() no da el error al compilar.
Ejemplo, ver al final de test01.prg:
Code: Select all
#include "hmg.ch"
****************************************************************************************************************
Function Main()
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 500 ;
HEIGHT 200 ;
MAIN;
TITLE 'Button Test'
@30,10 BUTTON Button_1 CAPTION "Pueba de Compilación" WIDTH 450 HEIGHT 50 ACTION CREAHRB()
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
****************************************************************************************************************
FUNCTION CREAHRB
ELPRG:="TEST02.PRG"
ELHRB:="TEST02.HRB"
HMG_PATH:=[C:\HMG.3.4.3]
ALTD()
IF FILE(ELPRG)
TXTPRG:=MEMOREAD(ELPRG)
TXTHRB:=hb_CompileFromBuf(TXTPRG,"harbour", "/n", "/i"+HMG_PATH )
MEMOWRIT(ELHRB,sx_encrypt(TXTHRB,"myPaswdKey"))
TXTHRB:=sx_decrypt(MEMOREAD(ELHRB),"myPaswdKey")
nHandle:=hb_hrbload(TXTHRB)
call_func(nHandle,"CONECTA")
hb_hrbunload( nHandle )
ENDIF
RETURN
****************************************************************************************************************
static function call_func( nHandle, cFunc, xPar )
local xRet := HB_HRBGETFUNSYM( nHandle, cFunc )
if empty( xRet )
? "Error load in function " + cFunc
quit
endif
return eval( xRet, xPar )
****************************************************************************************************************
procedure jsnetioconnect(x,y)
NETIO_CONNECT(X,Y)
return
****************************************************************************************************************
Entonces en test02.prg puedo invocar tranquilamente la function netio_connect o la function jsnetioconnect
( cualquiera de las 2 funciones ) y compila sin error y funciona correctamente (probado).
Otra cosa: he notado que para para la function fieldput() tambien sucede lo mismo y lo he arreglado de la misma manera.
Re: Ayuda en Compilacion en tiempo de ejecucion
Posted: Mon Apr 03, 2017 10:41 am
by Pablo César
Gracias por compartir.
Es como si precisaria de estar presente en el código para considerarla...
Vá entender. Algo asi ya me pasó en el pasado con FMG_Editor, FMG_View e PRG2Fmg:
viewtopic.php?p=34015#p34015
Claudio definió ese comportamiento estraño como:
"se están comportando como si fuesen de enlace dinámico"
Bueno lo importante que resolviste.
