WriteFile写入文件后无法正确显示
BOOL CEvtLog::PopFileWrite()
{
DWORD dwBytesWritten ;
WORD wByteOrderMark = 0xFFFE ;
WriteFile(m_oLogFile, &wByteOrderMark, 2, &dwBytesWritten, NULL) ;
//文件为Unicode格式
return TRUE ;
}
void CEvtLog::WriteLogFile()
{
DWORD dwBytesRead, dwBytesWritten, dwPos;
CString sTime = "";
wchar_t *chTime;
char *chRet,*chBlk;
CTime tTime = CTime::GetCurrentTime();
sTime += tTime.Format("%H:%M:%S");
chTime = (wchar_t *)malloc(sTime.GetLength());
wcscpy(chTime,sTime.GetBuffer(0));
chRet = (char *)malloc(4);
chRet = "\r\n";
chBlk = (char *)malloc(4);
chBlk = " ";
dwBytesRead = wcslen(chTime)*2 + strlen(chBlk) + wcslen(m_chLogMsg)*2 + strlen(chRet);
dwPos = SetFilePointer(m_oLogFile, 0, NULL, FILE_END);
LockFile(m_oLogFile, dwPos, 0, dwPos + dwBytesRead, 0);
WriteFile(m_oLogFile, chTime, wcslen(chTime)*2, &dwBytesWritten, NULL);
WriteFile(m_oLogFile, chBlk, strlen(chBlk), &dwBytesWritten, NULL);
WriteFile(m_oLogFile, m_chLogMsg, wcslen(m_chLogMsg)*2, &dwBytesWritten, NULL);
WriteFile(m_oLogFile, chRet, strlen(chRet), &dwBytesWritten, NULL);
UnlockFile(m_oLogFile, dwPos, 0, dwPos + dwBytesRead, 0);
}
m_oLogFile是我打开的一个文件,chLogMsg是我想写入的log信息,问题是现在我输入的chLogMsg是中文(操作系统是日文),然后写入.log文件,最后用notepad打开发现中文显示为一片乱码~~~~~~~~请高手帮帮看看!!