C++:VC6.0移植到VS2010上会遇到字符串转换的问题error C2664

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dashumak/article/details/81109152

在VC6.0上写的控制台小程序直接移植到VS2010上会出现以下这些问题:

都是些字符串类型转化的问题,而原本在VC++6.0上是不会报错的,可以通过修改项目配置解决这些问题。

进入项目》属性》配置属性》常规》项目默认值中的字符集,VS2010默认是“使用Unicode字符集”改成“使用多字节字符集”

这样编译就通过了

两种字符集的区别:

(1)UNICODE下默认字符串中不管是中文还是英文都占一个基本存储单元2个字节(UNICODE的基本单元是short)

(2)非UNICODE跟VC6.0一样,默认字符串的基本单元是1个字节的char,英文数字占一个字节,中文占两个字节

也就是说在UNICODE下如果写代码时需要注意输入中文字符串的数据类型和函数形参的类型要绝对一直(尤其是CString和Char、TChar等),否则就会出错。

关于字符集具体的说明大家可以看看这个链接

https://blog.csdn.net/SarahZhang0104/article/details/51346999

猜你喜欢

转载自blog.csdn.net/dashumak/article/details/81109152