工程源文件一份。需要对其改动,使之支持Unicode.怎么做?请各位指点?

解决方案 »

  1.   

    在字符转换的时候用
    int MultiByteToWideChar(
      UINT CodePage,         // code page
      DWORD dwFlags,         // character-type options
      LPCSTR lpMultiByteStr, // address of string to map
      int cchMultiByte,      // number of bytes in string
      LPWSTR lpWideCharStr,  // address of wide-character buffer
      int cchWideChar        // size of buffer
    );
    LPCSTR -> LPWSTR 
      

  2.   

    一般对于中文,日文,韩文等需要用unicode格式
      

  3.   

    如果纯粹是美语,那么8位足够了。但是对于亚洲字符。则需要两位以上去存储字符。这是概念性的东西/。现在我面对的是源代码。看到的是CString;是LPSTR; 看到的是char *szXXX;看到的是"const string";
    我该怎么做?
      

  4.   

    找MSDN的索引:TCHAR.H 映射看了你就全明白了
      

  5.   

    hwo to convert MBCS to Unicode?
    see 
    http://www.codeproject.com/cpp/unicode.asp
      

  6.   

    数据类型           说明
    WCHAR         Unicode字符
    PWSTR         指向Unicode字符串的指针
    PCWSTR         指向一个恒定的Unicode字符串的指针
    对应的ANSI数据类型为CHAR,LPSTR和LPCSTR。
    ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR。
      

  7.   

    使用_T(),TCHAR,LPCTSTR,LPTSTR等等替换原来的内容。高效合理的使用正则表达式可以节省人力。
      

  8.   

    定义了UNICODE宏,系统就会自动切换到UNICODE版本
    当然只定义了宏并不能实现自动的转换,他还需要一系列的字符定义支持。
    TCHAR被定义为wchar_t
    LPTSTR被定义为LPWSTR
    在使用字符串常量的时候需要使用_TEXT(“MyStr”)来支持系统的自动转换
    使用MultiByteToWideChar
      

  9.   

    这几天看了一些文章,总结一下。1  将所有的chat转换为TCHAR2  将所有类似于LPSTR, LSTR的宏,改为LPTSTR3  给所有的常量字符串例如: “hello world!”加上宏_T()非MFC工程里面见面加上L 如:_T(“hello world!”)4  使用_tcsr前缀宏来替换strrchr()、_mbsrchr()和wcsrchr().等字符串函数。5  使用类似于_stprintf(代替sprinft()和swprintf()),_tfopen(代替fopen()和_wfopen())等函数。 6  若想工程支持UNICODE还需要,在预编译选项里面加上_UNICODE, UNICODE7  若工程出现问题,查找对字符串的处理是否用了++ -- 等操作。这样是不规范的,应当代替用charnext()等函数8  若此时工程仍然有问题,仔细调试代码吧……我也希望只要简单的几步就能够解决问题。可是我不会……那位高人有办法。支两招吧……
      

  10.   

    如果代码里用的是char而不是TCHAR的话……楼主,你慢慢改吧
    没别的办法
      

  11.   

    楼上的,定义WCHAR以后就不能以其它编码类型编译了。这样做得不好的!