我的工程里有很多程序,我只想让其中一两个类要用到unicode,可不可以不把整个工程设成支持unicode的方式,而只把想要用到的更改成支持unicode呢?

解决方案 »

  1.   

    这样做的目的是什么?都用Unicode不好么?移植也方便
      

  2.   

    完全可以的。VC里面其实是这样的,同一个函数有两个版本,一个 ANSI 版,一个UNICODE 版。你完全可以在UNICODE工程里直接调用  ANSI 版,
    也可以在 ANSI 工程里调用 UNICODE 版。比如说 MessageBoxA(...) 是 ANSI 版 ,MessageBoxW(...) 是 UNICODE 版。
    你只需在函数后面补上 A 或 W 即可
      

  3.   

    主要是字符串的操作函数需要注意就是了
    如果你即想用Unicode又想将来可能会该成ANSI
    那么就用_T版本的函数和CString, LPCTSTR, TCHAR等
    比如 _stscanf, _tcsclen, _tscpy, _tfopen
    调用API时候传字符串的需要带上_T
    Messagebox(NULL, _T("hello"), _T("hello"), MB_OK);如果你想在ANSI环境下一定要用Unicode,那么楼上的说的
    没错,涉及到汉字等显示的要注意进行转换,MultibyteToWideChar
      

  4.   


    strTemp = m_strScroll.GetAt(i);这个工程是ansi的,可是这个函数,我想调unicode的,也就是取两个字节可以吗?
      

  5.   

    关于你的test.rar,我已经给你发邮件了。QQ实在不好,我不愿用QQ.
      

  6.   

    using
    #define _UNICODE
    #undefine _UNICODE
    把你的程序段包起来(上面的标志位极不太清了,你去查一下MFC代码就知道了)
      

  7.   

    #define _UNICODE
    ...ur code...
    #undef  _UNICODE