Ejecutar un CODEBLOCK en C++

Post Reply
antolin
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Ejecutar un CODEBLOCK en C++

Post by antolin »

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
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
User avatar
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++

Post by Antonio Linares »

Aqui tienes el ejemplo completo:

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
antolin
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Ejecutar un CODEBLOCK en C++

Post by antolin »

Muchas gracias Antonio, va muy bien
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
antolin
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Ejecutar un CODEBLOCK en C++

Post by antolin »

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

Image
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
antolin
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Ejecutar un CODEBLOCK en C++

Post by antolin »

Es que me gustan mucho las transparencias.

Image
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
User avatar
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++

Post by Antonio Linares »

un gran trabajo!

Enhorabuena :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply