Conversion a C

Conversion a C

Postby Carles » Mon Sep 18, 2006 12:12 pm

Hola,

Haber quien me hecha un cable con esta conversion a C

Me gustaria hacer esto:

Code: Select all  Expand view  RUN
FUNCTION Test( cData )

  Local nError := 0

   MiFuncionC( cData, @nError )

RETURN nError


Yo creo q seria algo asi, pero me falta definir nError y como paso el paramtro por referencia:

Code: Select all  Expand view  RUN
#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

LPWSTR AnsiToWide( LPSTR );

HB_FUNC  ( TEST )
{
    LPWSTR cData = AnsiToWide( hb_parc( 1 ) );

    MiFuncionC( cData, nError ???)      <- Como defino nError ( p.e. nError := 0, y lo paso por referencia )

   retnl( nError )

}
#pragma ENDDUMP


Gracias atodos.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1139
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Postby jlcapel » Mon Sep 18, 2006 1:18 pm

Carles,

Quizás esto te pueda ayudar, aunque no estoy muy seguro.

http://www.capelblog.com/?p=75

Saludos,
José Luis Capel
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby Antonio Linares » Mon Sep 18, 2006 4:48 pm

Carles,

Es bastante más simple si lo cambias así:
Code: Select all  Expand view  RUN
FUNCTION Test( cData, nError )

   MiFuncionC( cData, @nError )

RETURN nError

te sirve ?
regards, saludos

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

Postby Carles » Tue Sep 19, 2006 9:06 am

Antonio,

Si me serviria, pero como declaro la variable nError dentro de la funcion y como la paso por referencia ?

Code: Select all  Expand view  RUN
#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

LPWSTR AnsiToWide( LPSTR );

HB_FUNC  ( TEST )
{
    LPWSTR cData = AnsiToWide( hb_parc( 1 ) );
    nError = hb_parnl(2) ;               <- Como declaro nError (2º parametro) ?

    MiFuncionC( cData, &nError)      <- Como defino nError por referencia con el & ?

}
#pragma ENDDUMP


Gracias
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1139
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Postby Antonio Linares » Tue Sep 19, 2006 10:02 am

Carles,
Code: Select all  Expand view  RUN
#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

LPWSTR AnsiToWide( LPSTR );

HB_FUNC  ( TEST )
{
    LPWSTR cData = AnsiToWide( hb_parc( 1 ) );
    LONG nError = hb_parnl(2) ;

    MiFuncionC( cData, &nError );

    hb_stornl( nError, 2 );
}
#pragma ENDDUMP
regards, saludos

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

Postby Carles » Tue Sep 19, 2006 10:06 am

Antonio,

Gracias. Casi lo consigo :-). Voy a probarlo
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1139
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Postby Carles » Tue Sep 19, 2006 12:40 pm

Antonio,

El ejemplo propuesto funciona de maravillas -> gracias.

Ahora necesito crear otro ejemplo, y necesito saber como se declaran las variables. No me gusta tocar las narices y si me dices donde puedo encontrar definiciones, me lo mirare. He intentado mirarme ficheros include, pero la verdad, no se si realmente miro lo correcto. Tambien, donde puedo mirar funciones que devuelven los valors, tipo hb_stornl(), hb_retnl(), ...

Ahora estoy enganchado en definir lo q en un prg seria:

cBuffer := Space(200)
lAccept := .f.


Gracias.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1139
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Postby Antonio Linares » Tue Sep 19, 2006 6:33 pm

Carles,

> cBuffer := Space(200)

char buffer[ 200 ];

> lAccept := .f.

BOOL bAccept = FALSE;

Revisa el código fuente de Harbour. En el directorio RTL tienes muchos ejemplos.
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 55 guests