没有合适的资源?快使用搜索试试~ 我知道了~
从 C++ Builder 6 到 XE2 的升级问题汇总
5星 · 超过95%的资源 需积分: 17 31 下载量 145 浏览量
2012-06-18
10:45:11
上传
评论
收藏 20KB DOCX 举报
温馨提示
试读
3页
从 C++ Builder 6 到 XE2 的升级问题汇总:在cb6中,因为没有Unicode的支持,String、string和AnsiString几乎没有区别,甚至系统会自动将两者进行转换,因此代码中存在三者混用的情况。
资源推荐
资源详情
资源评论
从 到 的升级问题汇总
、在 中,因为没有 的支持,、 和 几乎没有区别,甚至系统会自
动将两者进行转换,因此代码中存在三者混用的情况。
然而升级后却发现,因为从 开始引入的 字符集支持, 引入了全新
和 类,这里不解释他们的区别。
同时,编译器对于这五种字符串类型的规定和用途也更加严格,因此自动转换已经失效。
(1) 已发现的转换规则
String&->AnsiString&
看上去系统做出了正确的转换决定,但事实上,我们编译代码会得到这个错误信息:
!!"#$%&'()*+,-./
0)(1!-.
这得分两部分来看,首先是我们传入了一个错误的类型——,纠正它。
然后处理“0)2的问题——左值。
何为左值?等号左边的值……也就是一个变量,而非常量。
经过测试发现,带有“32符号传值的变量都不能在调用时传入常量,解决方法有两个:
$将传入的参数赋值到变量中,然后将变量作为参数传入
$去掉函数参数定义中使用的“32标记
char->wchar_t
错误信息为: !!"#$%45)0-,).-+,)6.
如:
!!)789)"::/;::/
96<=$>
需要改为
!!)789)"?::/?::/
96<=$>
(“?2表示转换成 )或者:
9)@::>
A@::>
!!)789)"9) 6"$/A 6"$/
96<=$>
改为:
9)@::>
A@::>
资源评论
- zyzoe20032017-12-06看一下,不是很详细的。
- superitman20062021-07-04一般般,一般般
wDkylin
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功