Ejecutar un CODEBLOCK en C++

Ejecutar un CODEBLOCK en C++

Postby antolin » Sat Apr 23, 2022 5:14 pm

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...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Ejecutar un CODEBLOCK en C++

Postby Antonio Linares » Sat Apr 23, 2022 6:15 pm

Aqui tienes el ejemplo completo:

antolin.prg
Code: Select all  Expand view
#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ejecutar un CODEBLOCK en C++

Postby antolin » Wed Apr 27, 2022 11:24 am

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

Re: Ejecutar un CODEBLOCK en C++

Postby antolin » Wed Apr 27, 2022 11:38 am

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...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Ejecutar un CODEBLOCK en C++

Postby antolin » Wed Apr 27, 2022 11:52 am

Es que me gustan mucho las transparencias.

Image
Peaaaaaso de foro...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Ejecutar un CODEBLOCK en C++

Postby Antonio Linares » Wed Apr 27, 2022 11:54 am

un gran trabajo!

Enhorabuena :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 82 guests