読者です 読者をやめる 読者になる 読者になる

VC 2005で、CStringを文字化けせずにファイルに保存する方法

昨日はこれに3時間悩んだ。
VC6.0の時は、
CString ss;
ss.Format("%d", a);
をstrcpyとかしてから直接書き込みできていたのに、
VC2005では、以下のようにする必要があった。

		CString ss;
		int a=10;
		ss.Format(_T("データ[%d]\r\nabc\0"),a);
		char sjis[256];
		WideCharToMultiByte(932,0,ss,-1,sjis,sizeof(sjis),NULL,NULL);
		f.Write(sjis, ss.StringLength(sjis));
		f.Flush();

あ、fの正体は CFile です。
最後のデストラクタあたりに f.close();を忘れずに。

ちなみに私はVC6.0の時はMFCはまったく使えなかったが[でもCStringだけこっそり]、
VC2005はMFCを使うようになった。
なんでだろう。

しかし、もっといい方法はないものか・・・。