Buenas tardes.
Alguien sabría decirme como ejecutar un CODEBLOCK de xHarbour en C++.
Por ejemplo: Pasar bEjemplo := { |x,y| MiFuncion(x,y,nOtro,cOtro)} a una función en C++ para que se ejecute la función MiFuncion() desde allí.
He encontrado la definición: hb_vmEvalBlockV( PHB_ITEM pBlockItem, USHORT uiArgCount, ... ) --> ( PHB_ITEM )pResult
Pero no sé como utilizarla. Si USHORT uiArgCoun es sólo un entero que indique el numero de argumentos, o si hay que enumerar las variables dentro de la función C++. Tampoco especifica la naturaleza de pResult, es un PHB_ITEM, pero de que tipo, o sólo es un 0 o -1.
Si me pudieran poner un ejemplo sencillo, mejor, claro.
Gracias
Ejecutar un CODEBLOCK en C++
- Antonio Linares
- Site Admin
- Posts: 42655
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 67 times
- Been thanked: 96 times
- Contact:
Re: Ejecutar un CODEBLOCK en C++
Aqui tienes el ejemplo completo:
antolin.prg
antolin.prg
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
local nOtro := 123
local cOtro := "Hello"
MsgInfo( Test( { | x, y | MiFuncion( x, y, nOtro, cOtro ) }, "Primer parámetro", "segundo parámetro" ) )
return nil
function MiFuncion( x, y, nOtro, cOtro )
MsgInfo( x )
MsgInfo( y )
MsgInfo( nOtro )
MsgInfo( cOtro )
return "funciona"
#pragma BEGINDUMP
#include <hbapi.h>
#include <hbapiitm.h>
#include <hbvm.h>
#include <hbstack.h>
HB_FUNC( TEST )
{
PHB_ITEM pCodeBlock = hb_param( 1, HB_IT_EVALITEM );
PHB_ITEM pParam1 = hb_param( 2, HB_IT_ANY );
PHB_ITEM pParam2 = hb_param( 3, HB_IT_ANY );
hb_vmEvalBlockV( pCodeBlock, 2, pParam1, pParam2 );
}
#pragma ENDDUMP
Re: Ejecutar un CODEBLOCK en C++
Muchas gracias Antonio, va muy bien
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55
Re: Ejecutar un CODEBLOCK en C++
Es que tengo mis propios browsers, y los estoy modificando para que tengan fondo transparente.
Van muy bien y rápidos, pero me gustaría acelerarlos con funciones en C++ para futuras mejoras.
Este es un ejemplo

Van muy bien y rápidos, pero me gustaría acelerarlos con funciones en C++ para futuras mejoras.
Este es un ejemplo

Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55
Re: Ejecutar un CODEBLOCK en C++
Es que me gustan mucho las transparencias.


Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55
- Antonio Linares
- Site Admin
- Posts: 42655
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 67 times
- Been thanked: 96 times
- Contact: