none
unicode下文本读写相关问题 RRS feed

  • 问题

  • static inline void DebugFile(LPCTSTR fmt, ...)
    {
    CStdioFile fd;

    if (fd.Open(_T("Debug.txt"), CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate))
    {
    CString txt;
    va_list vList;

    fd.SeekToEnd();
    va_start(vList, fmt);
    txt.FormatV(fmt, vList);
    fd.Write((LPCTSTR)txt, txt.GetLength());
    fd.Close();
    }
    }
    unicode下写CString貌似没写进去:
    CString szBuf("Hello world!");
    
    DebugFile(_T("Hello world!")); // 这是可以
    DebugFile(szBuf); // 这就不行
    DebugFile((LPCTSTR)szBuf); // 这也不行


    这是什么情况?

    2011年3月21日 11:58

答案

全部回复

  • CString szBuf("Hello world!");改为CString szBuf(_T("Hello world!"));
    2011年3月21日 16:04
  • fd.Write((LPCTSTR)txt, txt.GetLength()); 

    --->

    fd.Write((LPCTSTR)txt, txt.GetLength()*sizeof(TCHAR)); 


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年3月22日 7:24
    版主