2011-11-11 26 views
5

Sono una sorta di nuova per C++, mentre si lavora sul Windows CE .NET applicazione compattaCome convertire wchar_t * a const char *

durante il tentativo di scrivere dati hexa in un file

CString dataBlock1; 
dataBlock1 = ""; 

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

} 

std::ofstream out(file); 

sto ottenendo questo errore non può convertire il parametro 1 da WCHAR * a const char * sulla mentre si utilizza la funzione di scrittura al di sotto di scrivere dati in un file di esa

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

come possiamo convertire wchar_ * in const char * per far funzionare la funzione di scrittura.

Grazie.

+0

[Come convertire 'wchar_t *' in 'const char *'] (http://stackoverflow.com/questions/7835119/how-to-convert-wchar-t-to-const-char). Non è solo una domanda duplicata, ma usa anche 'CString', e ha lo stesso identico titolo. – tenfour

risposta

3

È possibile utilizzare la funzione wcstombs, riferimento here.

+0

Questo sembra funzionare .. grazie Thax – saroll

1

Windows ha un set di classi e funzioni che accettano wchar_t, che è testo memorizzato come UTF-16, e char, che è testo memorizzato nel set di caratteri ANSI. Se hai un puntatore a wchar_t devi usare una classe o una funzione appropriata che accetta wchar_t, o devi convertire i dati nel set di caratteri ANSI.

In questo caso, si desidera la variante wchar_t di ofstream, wofstream.

Problemi correlati