Hoe Wchar_t * naar const char te converteren *

Ik ben een soort nieuw voor C ++, terwijl ik aan de Windows CE .net-compacttoepassing werkte

tijdens het proberen hexa-gegevens naar een bestand te schrijven

CString dataBlock1;
dataBlock1 = "";

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

}

std::ofstream out(file);

Ik krijg deze fout kan parameter 1 niet converteren van wchar * naar const char * aan terwijl u de onderstaande schrijffunctie gebruikt om hexa-gegevens naar een bestand te schrijven

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

hoe kunnen we wchar_ * converteren naar const char * om de schrijffunctie te laten werken.

Bedankt.

7
Hoe 'wchar_t *' naar 'const char *' te converteren . Het is niet alleen een dubbele vraag, maar gebruikt ook CString en heeft exact dezelfde titel.
toegevoegd de auteur tenfour, de bron

2 antwoord

U kunt de functie wcstombs gebruiken, verwijs hier .

3
toegevoegd
is er een equivalent in win32?
toegevoegd de auteur Mohammadreza Panahi, de bron
Deze lijkt te werken. Bedankt Thax
toegevoegd de auteur saroll, de bron

Windows heeft een reeks klassen en functies die wchar_t, dat is tekst opgeslagen als UTF-16, en char, die tekst is opgeslagen in uw ANSI-tekenset. Als u pointer naar wchar_t hebt, moet u ofwel een geschikte klasse of functie gebruiken die wchar_t accepteert, of u moet de gegevens converteren naar uw ANSI-tekenset.

In dit geval wilt u de wchar_t-variant van ofstream, wofstream.

1
toegevoegd