我将一个库从多字节编译改为unicode编译。我懒得一个个的改动类型,直接将"char"替换为"wchar_t",结果在unsignde char变为unsigned wchar_t出现一个警告:unsigned 不能和wchar_t搭配。我查了一下msdn,发现
unsignde char的范围是-128到127
而wchar_t是0到65535.     我想unsignde char可能不需要改变,或者将unsignde char改为byte类型可能更为合适。不知道我的考虑是否正确。

解决方案 »

  1.   

    unsignde char 不需要更改,BYTE 在wchar下也可以用,不过我建议楼主直接用通配符,比如char直接用TCHAR。通配符对涉及多字节和unicode的函数都有自己的一套函数,在VS2005 和VS2008的MSDN中一般都会在每个函数的介绍中,加上通配符使用的函数,比如计算长度,多字节是用strlen, 而通配符是用_tcslen()
      

  2.   


    对头!TCHAR还有个好处,你可以把工程在MBCS和Unicode直接方便的转换,只需要在项目设置中变一下就可以了。
      

  3.   

    引用 3 楼 dengxuxing 的回复:
    引用 1 楼 wutaihua 的回复: 
    unsignde char 不需要更改,BYTE 在wchar下也可以用,不过我建议楼主直接用通配符,比如char直接用TCHAR。通配符对涉及多字节和unicode的函数都有自己的一套函数,在VS2005 和VS2008的MSDN中一般都会在每个函数的介绍中,加上通配符使用的函数,比如计算长度,多字节是用strlen, 而通配符是用_tcslen() 同意! 
     
    接着同意
      

  4.   

    我收藏了再同意,回头把wcscpy改成_tcscpy去
      

  5.   

    http://topic.csdn.net/u/20090416/11/a9b4c762-19e7-4b21-984a-a4db2061e47c.html
      

  6.   

    各位大哥,我是对vc的几个字符串类型给搞混了。在delphi里只用一string类型,就OK了。vc怎么这么多字符串类型啊?哪位大哥和我说说这些类型的区别啊?
      

  7.   

    http://blog.csdn.net/lb521200200/archive/2008/04/22/2314736.aspx