2011-11-11 14 views
5

Jestem rodzaj nowe do C++, podczas pracy na Windows CE .NET Compact aplikacjiJak przekonwertować wchar_t * na const char *

podczas próby zapisu dane teleadresowe heksadecymalne do pliku

CString dataBlock1; 
dataBlock1 = ""; 

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

} 

std::ofstream out(file); 

ja dostaję ten błąd nie można konwertować parametru 1 z WCHAR * do const char * na podczas korzystania z funkcji zapisu poniżej napisać dane teleadresowe heksadecymalne do pliku

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

jak możemy konwertuj wchar_ * na const char *, aby funkcja zapisu działała.

Dzięki.

+0

[Jak konwertować 'wchar_t *' do 'const char *'] (http://stackoverflow.com/questions/7835119/how-to-convert-wchar-t-to-const-char). Jest to nie tylko powielone pytanie, ale także "CString" i ma dokładnie taki sam tytuł. – tenfour

Odpowiedz

3

Można użyć funkcji wcstombs, odwoływać here.

+0

Ten wydaje się działać. Dzięki Thax – saroll

1

Windows ma zestaw klas i funkcji, które mają wchar_t tekst, który jest zapisany jako UTF-16 i char tekst, który jest przechowywany w zestawie znaków ANSI. Jeśli masz wskaźnik do wchar_t, musisz użyć odpowiedniej klasy lub funkcji, która akceptuje wchar_t, lub musisz przekonwertować dane na zestaw znaków ANSI.

W tym przypadku, chcesz wchar_t wariant ofstream, wofstream.

Powiązane problemy