BCB 6.0开发的工程升级到RAD Studio 10.2或10.3

ooolinux 2019-07-25 12:42:55
参考了不久前上一个帖子的回复,我加了一点自己的体会,大家补充。
——————

最好新建一个工程,删除初始Unit1.cpp,保存项目,然后把旧工程中的文件一个个添加进来。另外估计有些控件已经不兼容了,比如用到的一些三方控件。还有头文件发生了变化,可以切换到窗体头文件Unit1.h,把自动包含的头文件全部删除,然后保存,IDE会自动生成适应新环境所需的头文件。有个别的控件,增加了个别新的属性,新的属性的默认值会影响控件原有的表现,如果碰到这种情况,就要去找找控件的新属性了。

需要注意的是,有的项目,项目project.cpp文件并不是默认的,可能加了一些代码,需要打开看一下,复制到新项目.cpp文件中。还有,旧项目的字符串类型是AnsiString,新的是UnicodeString(比如TEdit的Text属性的类型),涉及到字符串处理的代码可能需要修改,UnicodeString中每个字符不管是中文还是英语,长度都是1。

BCB 6.0小巧,资料多,对初学者是最合适的,做项目也可用,win10下也可用,自定义安装不要装在C盘就可以了,装完激活后再重启一下。
...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2021-03-02
  • 打赏
  • 举报
回复
注意的是,项目project.cpp文件中,第一个Application->CreateForm()的窗体为主窗体,如果因为添加旧工程中窗体cpp文件的顺序问题而使主窗体不对,只要调整一下Application->CreateForm()的语句顺序使主窗体在前。
ooolinux 2021-03-02
  • 打赏
  • 举报
回复
(来自:http://www.cppfans.com/):

UNICODE (统一码、万国码、单一码) 为世界上所有语言的文字进行统一编码,可以跨语言、跨平台进行文字处理。UNICODE 给每一个字符都规定一个唯一的整数值作为编码,每个国家的文字都在不同的数值范围,除此之外,还包含了一些图形和符号。
• UNICODE 编码的值,通常用 U+十六进位制的数值来表示,例如小写英文字母 “a” 的编码为 U+0061,汉字的 “字” 编码为 U+5B57,表情符号 “😁” 的编码为 U+1F601。
• 由于整个地球上的文字数量太大了,UNICODE 收录的文字编码达到了 3 个字节表示的范围了,用 4 个字节的长整数表示一个字符浪费空间,用 2 个字节的短整数还不够用,于是就产生了各种储存文字的编码方式。例如有些设备的字节是 7 位的,不支持 8 位的字节,那么就产生了 UTF-7,把 UNICODE 编码按照一定的规则分成 7 位一组的数据,再储存在电脑里面。而 UTF-8 是按照一定规则,分解为 8 位一组的字节,储存在电脑里面。
• 在 Windows 系统里面,通常把 UTF-16 编码称为 UNICODE,而把本地编码称为 ANSI 。

UTF-16 编码是 Windows 操作系统核心的字符编码,是 Windows 编程最常用的编码类型,
C++ Builder 使用 UnicodeString 处理 UTF-16 编码的字符串。

由于 UTF-16 采用 16 位的字符 char16_t 进行编码,UNICODE 的基本多语言平面 (BMP) 里面的字符,直接使用单个 char16_t 编码,编码值就等于 UNICODE 码值;而辅助平面里面的字符,使用一对 char16_t 进行编码,这一对 char16_t 称为代理对 (surrogate pair),这样的字符长度为 32 位,即 4 个字节。

UNICODE 编码是 3 个字节的,那么用 4 个字节的长整数储存肯定没问题,UTF-32 就是用 4 个字节的 char32_t 表示一个字符,每个字符都是 4 个字节的,数值正好等于 UNICODE 编码的值,不需要另外规定拆分和组合的规则。Linux 的宽字符 wchar_t 是这个编码的。
ooolinux 2021-03-02
  • 打赏
  • 举报
回复
UnicodeString中每个字符不管是中文还是英语,长度都是1——这句话是不对的,至少不完全对。
abc_ustone 2019-08-29
  • 打赏
  • 举报
回复
ooolinux 2019-07-26
  • 打赏
  • 举报
回复
新版本支持C++11以上语法,enum类型用法变了,需要:类型名::枚举名 比如: Application->FormFactor->Orientations = TScreenOrientations() << TScreenOrientation::InvertedLandscape;

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧