打包解包模块总结:VS2010中默认的编码是Unicode编码

我把vc6.0上运行没有问题的代码挪到vs2010上,出现了一系列问题。
其根本原因是两种编译器默认编码不一样,vc6.0中默认的编码是(多字节)Ascii编码,VS2010中默认的编码是Unicode编码。

可以简单粗暴地改回去
打开菜单栏–>项目–>XXX属性–>配置属性–>常规–>字符集–>设置回Ascii编码

编译没有问题。

看了一下两种编码的区别:

ANSI 在不同的操作系统下代表着不同的编码。在我们正常用的简体中文windows操作系统中,ANSI代表着GBK编码,而在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。

UNICODE是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode
是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

作者:米奇小林
CString与char*互转及ANSI 和 UNICODE 编码
https://www.jianshu.com/p/9804c28e21e8 來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

那么,什么是字符集? 规定二进制数据和某种语言内的文字之间的对应关系,这就叫该种语言的字符集 最基本的是ASCII,规定数值48对应字符’0’,诸如此类,但由于这种对应关系的历史局限性(发明它的人当时没兴趣考虑非英文语言),同样的二进制数据,在不同的字符集内就对应不同的文字 而规定一套对应关系,使得二进制数据能够对应很多语言的文字,这就叫Unicode

使用Unicode编码显然更好。

所以我最后还是改回去了。

第一个问题是

error C2664: ‘strtol’ : cannot convert parameter 1 from ‘CString’ to ‘const char *’

不能将参数 1 从“CString”转换为“const char *”;

text=strtol(m_recieve,NULL,16);

//其中text为long型,m_recieve为CString型。

strtol函数的功能是转换字符串

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值