Cómo convertir a TCHAR[]
en char[]
?Convertir matriz TCHAR en matriz de caracteres
Respuesta
TCHAR es un typedef específico de Microsoft para char o wchar_t (un carácter ancho).
La conversión a char depende de cuál de estos es en realidad. Si TCHAR es realmente un char, puedes hacer un molde simple, pero si es realmente un wchar_t, necesitarás una rutina para convertir conjuntos de caracteres. Véase la función MultiByteToWideChar()
Creo que necesitamos convertir de wchar_t a char, así que necesitamos WidecharToMultiByte !! –
que depende del conjunto de caracteres (Unicode o ANSI) (wchar_t o char), por lo que si que está utilizando ANSI simplemente TCHAR será carbón sin ningún casting, pero para Unicode tiene que convertir de wchar_t a Char, puede utilizar WideCharToMultiByte
Honestamente no sé cómo hacerlo con matrices pero con punteros, Microsoft nos ofrece algunas API, como wctomb y wcstombs. El primero es menos seguro que el segundo. Así que creo que puedes hacer lo que quieras lograr con un arreglo a puntero y un lanzamiento de puntero a arreglo como;
// ... your includes
#include <stdlib.h>
// ... your defines
#define MAX_LEN 100
// ... your codes
// I assume there is no any defined TCHAR array to be converted so far, so I'll create one
TCHAR c_wText[MAX_LEN] = _T("Hello world!");
// Now defining the char pointer to be a buffer for wcstomb/wcstombs
char c_szText[MAX_LEN];
wcstombs(c_szText, c_wText, wcslen(c_wText) + 1);
// ... and you're free to use your char array, c_szText
PD: No podría ser la mejor solución, pero al menos funciona y es funcional.
¿Por qué no usar wcstombs_s?
Aquí está el código para mostrar qué tan simple es.
#define MAX_LENGHT 500
...
TCHAR szWideString[MAX_LENGHT];
char szString[MAX_LENGHT];
size_t nNumCharConverted;
wcstombs_s(&nNumCharConverted, szString, MAX_LENGHT,
szWideString, MAX_LENGHT);
- 1. Convertir matriz int a matriz de caracteres
- 2. Convertir NSString en matriz de caracteres
- 3. Convertir matriz de caracteres a caracteres sin signo *
- 4. Cómo asignar un valor a una matriz TCHAR
- 5. convertir una cadena en una matriz de caracteres
- 6. ¿Convierte CString en matriz de caracteres?
- 7. delete [] Matriz de caracteres
- 8. Convertir matriz en csv
- 9. matriz JSON convertir a matriz de Javascript
- 10. Convertir matriz asociativa de matriz numérica
- 11. cómo convertir la matriz de caracteres a wchar_t array?
- 12. convertir matriz de cadena a matriz de bytes
- 13. ¿Cómo convertir una matriz de bytes a una matriz int?
- 14. ¿Convertir una matriz de caracteres a una sola int?
- 15. ¿Cómo convertir una matriz de caracteres a una matriz de cadenas?
- 16. convertir matriz decimal a matriz doble
- 17. Convertir matriz plana de objetos en matriz anidada de objetos
- 18. Convertir matriz de bytes a matriz corta en C#
- 19. Convertir matriz de celdas no uniforme en matriz numérica
- 20. Cómo convertir una matriz de bytes en una matriz int?
- 21. convertir una matriz FileInfo en una matriz de cadenas C#
- 22. Convertir PHP cadena de matriz en una matriz
- 23. Convertir std :: vector en matriz
- 24. ¿Convertir vector en matriz lógica?
- 25. puede convertir cadena en matriz?
- 26. Convertir lista en matriz. Java.Lang.ArraystoreException
- 27. Convertir matriz a Matrix
- 28. Convertir una matriz 1D en una matriz 2D en numpy
- 29. cadena convertir a matriz
- 30. Convertir matriz 2 dimensiones
duplicado: http://stackoverflow.com/questions/159442/what-is-the-simplest-way-to-convert-char-to-from-tchar-in-c-cms – Noldorin
Esta voluntad definitivamente te ayudamos: http: //www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc – Ajay
Acabo de cambiar General -> Conjunto de caracteres: = "Usar el conjunto de caracteres Unioncode" y ahora está funcionando (char *) tcharr; – user956584