2011-11-11 49 views
5

Soy una especie de nuevo para C++, mientras trabajaba en el Windows CE .NET aplicación compactaCómo convertir wchar_t * a const char *

al intentar escribir datas más hexa a un archivo

CString dataBlock1; 
dataBlock1 = ""; 

CString temp; 
for(int i = 0; i < rLen; i++) 
{ 
temp.Format(L"%02X ",rec[i]); 
dataBlock1 += temp; 

} 

std::ofstream out(file); 

estoy recibiendo este error no puede convertir el parámetro 1 de wchar * a const char * en durante el uso de la función de escritura a continuación para escribir datas más hexa a un archivo

out.write(myReader.dataBlock1.GetBuffer(),myReader.dataBlock1.GetLength()); 

cómo podemos convierta wchar_ * en const char * para que la función de escritura funcione.

Gracias.

+0

[Cómo convertir 'wchar_t *' a 'const char *'] (http://stackoverflow.com/questions/7835119/how-to-convert-wchar-t-to-const-char). No solo es una pregunta duplicada, sino que también usa 'CString', y tiene exactamente el mismo título. – tenfour

Respuesta

3

Usted puede utilizar la función wcstombs Referencia here.

+0

Parece que funciona ... Gracias Thax – saroll

1

Windows tiene un conjunto de clases y funciones que se wchar_t, que se almacena como texto UTF-16, y la carbonilla, que se almacena texto en el juego de caracteres ANSI. Si tiene puntero a wchar_t que sea necesario utilizar una clase o función apropiada que acepte wchar_t, o es necesario convertir los datos a su juego de caracteres ANSI.

En este caso, es preferible la variante de wchar_t ofstream, wofstream.

Cuestiones relacionadas