分别在Unicode和非Unicode环境下按行读取Unicode文件
#define TEXT_MAX_LENGTH 1024
FILE* m_pFp;
CString strLine;
const CString sFilename = _T("E:\\MTransLog.txt");
if((m_pFp = _tfopen(sFilename, _T("rb"))) == NULL)
{
return FALSE;
}
#ifdef _UNICODE
return (_fgetts(strLine.GetBuffer(0), TEXT_MAX_LENGTH, m_pFp) != NULL);
#else
wchar_t wBuf[TEXT_MAX_LENGTH];
if(fgetws(wBuf, TEXT_MAX_LENGTH, m_pFp) == NULL)
{
return FALSE;
}
char* cBuf = new char[TEXT_MAX_LENGTH];
WideCharToMultiByte (CP_ACP, 0, wBuf, -1, cBuf, TEXT_MAX_LENGTH, NULL, NULL);
strLine.Format(_T("%s"), cBuf);
delete [] cBuf;
}