テキストファイルに保存する場合、文字列をそのまま書き出してはいけない。
WinCEは内部的に文字をUNICODEで扱っているので、変換する必要がある。
具体的には、WideCharToMultiByte で変換をしてから書き出す。
例えば、こんな感じ。
void fileproc::WriteTextFile(TCHAR *name, TCHAR *buf)
{
char w[MAX_PATH];
int buflen
CFile fout;
fout.Open(name, CFile::modeCreate | CFile::modeWrite);
buflen = WideCharToMultiByte(CP_ACP,0,buf,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,buf,-1,w,buflen,NULL,NULL);
w[buflen] = ‘\0’;
fout.Write(w, sizeof(w));
fout.Close();
}
MultiByteChar → S-JISやUTF-8などの様々な文字コード
WideChar → Unicode
MultiByteToWideChar() → MultiByteCharをWideCharに変換
WideCharToMultiByte() → WideCharをMultiByteCharに変換
CP_ACP は ANSIコードをあらわしており、Shift-JIS のこと?