Ayuda en Compilacion en tiempo de ejecucion

Source code related resources

Moderator: Rathinagiri

Post Reply
ASESORMIX
Posts: 73
Joined: Thu Oct 25, 2012 8:08 pm
Location: Bqto, Venezuela
Been thanked: 6 times

Ayuda en Compilacion en tiempo de ejecucion

Post by ASESORMIX » Wed Mar 29, 2017 8:13 pm

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

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 179 times

Post by Pablo César » Wed Mar 29, 2017 8:56 pm

Y tu código ?
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

ASESORMIX
Posts: 73
Joined: Thu Oct 25, 2012 8:08 pm
Location: Bqto, Venezuela
Been thanked: 6 times

Post by ASESORMIX » Wed Mar 29, 2017 11:46 pm

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 ...

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 179 times

Post by Pablo César » Mon Apr 03, 2017 12:52 am

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.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

ASESORMIX
Posts: 73
Joined: Thu Oct 25, 2012 8:08 pm
Location: Bqto, Venezuela
Been thanked: 6 times

Post by ASESORMIX » Mon Apr 03, 2017 2:20 am

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.

User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 179 times

Post by Pablo César » Mon Apr 03, 2017 10:41 am

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. :D
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

Post Reply