web-dev-qa-db-ja.com

Wchar_t *をconstchar *に変換する方法

私はWindowsCE .net Compact Applicationで作業している間、c ++の一種の新人です。

ヘキサデータをファイルに書き込もうとしている間

CString dataBlock1;
dataBlock1 = "";

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

}

std::ofstream out(file);

以下の書き込み関数を使用してヘキサデータをファイルに書き込むときに、パラメータ1をwchar *からconstchar *に変換できないというエラーが発生します

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

wchar_ *をconstchar *に変換して、書き込み関数を機能させるにはどうすればよいですか。

ありがとう。

9
saroll

wcstombs関数を使用できます。参照 ここ

5
az4dan

Windowsには、UTF-16として格納されているテキストであるwchar_tと、ANSI文字セットに格納されているテキストであるcharを受け取るクラスと関数のセットがあります。 wchar_tへのポインタがある場合は、wchar_tを受け入れる適切なクラスまたは関数を使用するか、データをANSI文字セットに変換する必要があります。

この場合、ofstreamのwchar_tバリアントであるwofstreamが必要です。

1
Scott Conger