Page 1 of 1

Problemas en paso de parametros...

Posted: Tue Jan 23, 2007 3:36 pm
by luis.santeliz
tengo 2 dudas..

- La funcion de C WideToAnsi() fue eliminada en el nuevo build de diciembre?? osea la que se declaraba : LPWSTR AnsiToWide( LPSTR );

- Como paso un String desde fivewin a una funcion HB_FUNC(xxx) ???..
ya intente con hb_parc(1), hb_parcx(1) y hb_parprt(1) este ultimo utilizandolo como un puntero LPCSTR pero nada.. lo que obtengo es basura ascii..

gracias por su atencion.

Posted: Tue Jan 23, 2007 5:23 pm
by Antonio Linares
Luis,

>
- La funcion de C WideToAnsi() fue eliminada en el nuevo build de diciembre?? osea la que se declaraba : LPWSTR AnsiToWide( LPSTR );
>

No, para nada. Sigue estando en FWPPC.

>
- Como paso un String desde fivewin a una funcion HB_FUNC(xxx) ???..
ya intente con hb_parc(1), hb_parcx(1) y hb_parprt(1) este ultimo utilizandolo como un puntero LPCSTR pero nada.. lo que obtengo es basura ascii..
>

hb_parc( 1 )

Posted: Thu Jan 25, 2007 5:05 pm
by luis.santeliz
y que devuelve hb_parc() ???

- una cadena estatica
- un puntero a una cadena terminada con null
- un puntero a una cadena sin null
...

nose porque tengo este error :

Creating library pedidos.lib and object pedidos.exp
tmprint.obj : error LNK2019: unresolved external symbol "unsigned short * __cdec
l AnsiToWide(char *)" (?AnsiToWide@@YAPAGPAD@Z) referenced in function HB_FUN_PR
T_DRAWTEXT
pedidos.exe : fatal error LNK1120: 1 unresolved externals
* Application successfully built

he declarado:

#pragma BEGINDUMP

LPWSTR AnsiToWide( LPSTR )

alguna sugerencia???

Posted: Thu Jan 25, 2007 5:56 pm
by Antonio Linares
Luis,

Devuelve un puntero a una cadena, que normalmente está terminada en NULL

Ese problema es debido a que estás compilando con /TP. Quita ese flag de compilación, ya que ahora se compila en modo C y no en C++

Posted: Fri Jan 26, 2007 2:54 pm
by luis.santeliz
muchas gracias !! ya resolvi el problema.. no utilize ansitowide() existe una funcion llamada MultiByteToWideChar() que es mas segura, y el problema con hb_parc() era justamente la conversion ANSI -> UNICODE