Visual C++ .NET - Tipo de dato en embedded Visual c++

 
Vista:
sin imagen de perfil

Tipo de dato en embedded Visual c++

Publicado por Alf (3 intervenciones) el 27/10/2011 13:30:34
Tengo este codigo

Edit_SetText(hctl_data, (LPTSTR)SCNBUF_GETDATA(lpScanBuffer));

como Edit_SetText tiene como parametros tipos HWND y LPTSTR, (LPTSTR) pasa a LPTSTR lo que devuelve SCNBUF_GETDATA(lpScanBuffer)

si yo quiero convertir SCNBUF_GETDATA(lpScanBuffer) a CHAR para poder usarlo en el comando fputs(), debo anteponer (CHAR) ??

lo probe y retorna error
alguna sugerencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Conversión de tipos para fputs()

Publicado por Alejandro (265 intervenciones) el 09/02/2024 22:58:33
Alf, la función `Edit_SetText` acepta parámetros de tipo `HWND` y `LPTSTR`. Si deseas convertir el resultado de `SCNBUF_GETDATA(lpScanBuffer)` a `CHAR` para utilizarlo en la función `fputs()`, debes realizar una conversión adecuada.

Aquí hay una sugerencia:

1
2
3
4
5
6
7
8
9
10
11
12
13
// Obtén el texto de la ventana de edición
LPTSTR texto = (LPTSTR)SCNBUF_GETDATA(lpScanBuffer);
 
// Convierte de LPTSTR a CHAR
int longitud = WideCharToMultiByte(CP_UTF8, 0, texto, -1, NULL, 0, NULL, NULL);
CHAR* textoConvertido = new CHAR[longitud];
WideCharToMultiByte(CP_UTF8, 0, texto, -1, textoConvertido, longitud, NULL, NULL);
 
// Usa fputs() con el texto convertido
fputs(textoConvertido, archivo);
 
// Libera la memoria asignada dinámicamente
delete[] textoConvertido;

En este ejemplo, se utiliza `WideCharToMultiByte` para convertir el texto de formato `LPTSTR` a `CHAR`. Asegúrate de ajustar la página de códigos (`CP_UTF8` en este caso) según tus necesidades.

Es importante recordar liberar la memoria asignada dinámicamente (`textoConvertido` en este caso) para evitar pérdidas de memoria.

Además, ten en cuenta que la conversión de tipos puede depender del juego de caracteres y de la codificación utilizada en tu proyecto. Ajusta los parámetros de `WideCharToMultiByte` según sea necesario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar