esto parece una pregunta bastante softball, pero siempre tengo un tiempo duro en busca esta función porque parece que hay tantas variaciones respecto a la referencia de carbón y TCHAR.¿Cuál es la forma más sencilla de convertir char [] a/de tchar [] en C/C++ (ms)?
Respuesta
MultiByteToWideChar pero también vea "A few of the gotchas of MultiByteToWideChar".
TCHAR es un typedef específicas de Microsoft, ya sea carbón o wchar_t (un carácter ancho).
La conversión a carbón depende de cuál de éstos lo que realmente es. 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. Vea la función MultiByteToWideChar()
Usted trae una excelente punto. Aunque en esta situación particular, creo que el TChar es un personaje amplio, solo necesitaré hacer la conversión si no es así. que debo verificar de alguna manera. – CrashCodes
Hay algunas respuestas en esta entrada, así, especialmente si usted está buscando una solución multiplataforma:
¿Cómo puede ser una plataforma cruzada? No hay otro software TCHAR. Sus ventanas específicas. –
no deberíamos usar estas conversiones, porque si las llamamos en recursividad, no liberará la memoria – Vinay
@Vinay Cree una función auxiliar que llame a una de estas, luego copia el resultado en el almacenamiento dinámico o en otro almacenamiento intermedio. Una vez que la función auxiliar vuelve, se libera la memoria de la pila. – bdonlan
Aunque en esta situación particular, creo que el TCHAR es un carácter ancho que sólo tendrá que hacer la conversión si no lo es. que debo verificar de alguna manera.
if (sizeof(TCHAR) != sizeof(wchar_t))
{ .... }
Lo bueno de esto es los dos tamaños de los iguales son constantes, lo que significa que el compilador se encargará (y eliminar) el if(), y si son iguales, retire todo el interior los apoyos
también podemos realizar el uso de #ifdef _UNICODE {...} #else {....} #endif – Abhineet
Este es el código que duplica CPP _TCHAR * argv [] a char * argn [].
Si la adopción de código antiguo a Windows, un uso simple definen mencionado en el código como opcionales.
enlace roto (por eso es mejor citar el ejemplo:) –
Soy consciente de que es un viejo hilo, pero no me dieron la respuesta "correcta", por lo que estoy añadiendo ahora.
La forma en que esto parece que hacer ahora es usar la macro de texto. El ejemplo de FindFirstFile en msdn señala esto. http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx
La macro TEXT solo funcionará con literales de cadena ... . – jswolf19
Usted puede poner condiciones en el código
ifdef _UNICODE
{// hacer como TCHAR es CHAR WIDE} else {// hacer como TCHAR es CHAR}
- 1. ¿Cuál es la forma más sencilla de intercambiar char en una cadena con Python?
- 2. ¿Cuál es la forma más sencilla de convertir cadenas separadas por comas a int []?
- 3. ¿Por qué no se puede convertir TCHAR * char *
- 4. ¿Cuál es la forma más sencilla de crear una ventana con forma en wxPython?
- 5. ¿Cuál es la forma más sencilla de obtener resultados de scripts de Python en la web?
- 6. Convertir matriz TCHAR en matriz de caracteres
- 7. ¿Cuál es la forma más sencilla de formatear una marca de tiempo de SQL en PHP?
- 8. ¿Cuál es la forma más sencilla de actualizar la plataforma haskell a la última?
- 9. ¿Cuál es la forma más sencilla de muestrear continuamente desde la línea de entrada utilizando C#
- 10. ¿Cuál es la forma más sencilla de escribir aplicaciones web en Haskell?
- 11. ¿Cuál es la forma más sencilla de ofrecer/consumir servicios web en jython?
- 12. ¿Qué significa "lambda" en Python, y cuál es la forma más sencilla de usarlo?
- 13. Cuál es la forma más sencilla de bloquear un objeto en Django
- 14. ¿Cuál es la forma más sencilla de extender una matriz numpy en 2 dimensiones?
- 15. ¿Cuál es la forma más sencilla de agregar uno a una cadena binaria en Perl?
- 16. ¿Cuál es la forma más sencilla de escribir bibliotecas portátiles cargables dinámicamente en C++?
- 17. ¿Cuál es la forma más sencilla de realizar una solicitud HTTP GET en Perl?
- 18. ¿Cuál es la forma más sencilla de implementar el cifrado en WCF cuando se usa netTcpBinding?
- 19. ¿Cuál es la forma más sencilla de reproducir un MP3 en WPF?
- 20. ANTLR ¿Cuál es la forma más sencilla de realizar una gramática dependiente de sangría de pitón?
- 21. ¿Cuál es la forma más sencilla de mostrar httpServletResponse.sendError (403, "Mi Mensaje") Estado de JSTL
- 22. ¿Cuál es la forma más sencilla de cargar dinero a través de Internet?
- 23. ¿Cuál es la forma más sencilla de exportar datos de Excel a Matlab?
- 24. ¿Cuál es la mejor forma de convertir entre char * y System :: String en C++/CLI
- 25. VBScript: ¿Cuál es la forma más sencilla de formatear una cadena?
- 26. ¿Cuál es la forma más sencilla de conectar un dispositivo a un iPad desde una aplicación?
- 27. ¿Cuál es la forma más sencilla de acceder a mssql con python o ironpython?
- 28. ¿Cuál es la forma más sencilla de llamar a Http POST url usando Delphi?
- 29. ¿Cuál es la forma más sencilla de llamar a Http GET url usando Delphi?
- 30. ¿Cuál es la forma más sencilla de comparar dos objetos google :: protobuf :: Message entre sí?
¿Qué sucede si TCHAR es CHAR? –
Leí la pregunta que estipulaba que era necesaria una conversión, pero señalado. – jeffm