10

Windows CE .net コンパクトアプリケーションで作業している間、私は 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);

以下の書き込み関数を使用してヘキサデータをファイルに書き込んでいるときに、このエラー can not convert parameter 1 from wchar * to const char* on が発生しています

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

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

ありがとう。

4

2 に答える 2

7

wcstombs関数を使用できます。ここを参照してください。

于 2011-11-11T19:10:39.090 に答える
1

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

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

于 2011-11-11T18:57:33.453 に答える