Hola Antonio:
Ante todo disculpa por la tardanza pero la semana pasada no pude hacer nada sobre este tema:
Y gracias por tu respuesta el que sabe, sabe.
Solo dos preguntas:
1.- En tu ejemplo en el Main() pones solo Test(), como yo expuse era que una variable valiese "Test()" y después siempre pongo & y la variable, para ejecutar esa variable por lo que si modifico tu código a:
#include "FiveWin.ch"
function Main()
cVar = "Test()"
&cVar
return nil
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
static void Test( void )
{
MessageBox( 0, "dentro de Test()", "ok", 0 );
}
typedef void ( * PFUNC ) ( void );
HB_FUNC( TEST )
{
PFUNC pFunction = Test;
pFunction();
}
#pragma ENDDUMP
¿Esto funcionaría?. Pero lo utilizo para mas cosas como la declaración de variables o para quitar OBJETOS de pantalla. Por ejemplo:
PROCEDURE QuiBotPan(zOpc,zOpc1)
zNum = zOpc
do While .T.
do case
case zNum > 9
zVar = "xPul" + str(zNum,2,0)
otherwise
zVar = "xPul0" + str(zNum,1,0)
endcase
&zVar:End()
zNum = zNum + 1
if zNum = zOpc1+1
exit
endif
enddo
RETURN (NIL)
Que lo que hace es quitar botones desde un numero a otro. Aquí también funcionaría.
2.- En tu ejemplo usas una función de harbour "HB_FUNC" para llamar a la otra y usas "hbapi.h" como expresé yo lo quiero hacer en C++, tendría que incluir esta .h para poder hacerlo o lo tendría que hacer de otra manera.
Un saludo y gracias de nuevo.
Carlos