現在、MFCライブラリCFileクラスを学習していますが、Writeメソッドを使用してファイルにデータを書き込む際に問題があります。私は、パラメータとして文字列を渡すと、それは完全に正常に動作します:ファイルに書き込まれた書き込みメンバを使用してCStringをCFileに書き込むときに各文字の後のヌル
char c[] = "Hello!";
int size = sizeof(c)/sizeof(c[0]);
myFile.Write(c, size)
文字:
Hello!
をしかし、私は、引数としてCStringオブジェクトを渡すしようとすると:
CString cS("Hello");
myFile.Write(cS, cS.GetLength());
入手方法:
H e l
私も試しました:
CString cS("Hello");
LPWSTR c = cS.GetBuffer();
myFile.Write(c, cS.GetLength());
cS.ReleaseBuffer();
しかし出力は上記と同じです。その変換の原因は何ですか?テキストはワイド文字で保存されるために起こりますか?
利用代わりに '' CString'のCStringA'ためのコード上で変更してみてください。 ASCII範囲のワイド文字は、1バイトのASCIIと1バイトのヌルバイトで構成されます。 –