没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:胡欣星|2025-01-07 16:19:59.587|阅读 13 次
概述:C++Builder 12.2版本此次进行升级时,针对技术选择做出了一些决策,其中涉及到运行时库(RTL)的使用。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
处理旧版RTL是一个非常有用的技巧,适用于升级到 C++Builder / RAD Studio 12.2 的新 Windows 64 位现代 C++ 工具链的开发人员。处理遗留代码,尤其是依赖于非标准或已废弃方法的代码,通常是现代化项目的一个挑战,因此 C++Builder 团队提供了如何解决这一问题的指导,常有帮助。
C++Builder 12.2版本此次进行升级时,针对技术选择做出了一些决策,其中涉及到运行时库(RTL)的使用。RTL 是提供大多数其他代码基础功能的代码库,它有两个版本:C RTL 提供标准的 C 函数(比如printf),而 C++ RTL 提供 C++ 异常处理等功能。
(除了这两个 RTL 外,还会有 STL(标准模板库),它是容器和算法的标准库,以及你自己的代码,它们都依赖于 RTL 提供的功能。你可以将 RTL 看作是应用程序所依赖的基础代码,虽然它常常被忽视。)
旧版工具链使用的是自定义的 RTL,那么是续使用这些 RTL,还是使用新的 RTL?
但关键在于:旧的 C 和 C++ RTL 都继承自早期 Turbo C 和 Turbo C++ 产品(上世纪八九十年代的工具)。虽然这些 RTL 经历了大量的重构,但官方并没有删除旧有的类型和方法。而在那个时代,C++ 还没有标准化,官方使用了许多非标准的类型和方法(当时 C++ 还不存在标准)。这些非标准的方法在新的 RTL 中并没有出现。因此,如果你有非常老旧的代码库,可能会用到这些方法。
小编并不清楚有多少代码仍然在使用这些上世纪八九十年代的非标准方法。你可能也不清楚,因为直到现在,重新编译这些代码通常不会报错,你可能从未注意到这些方法存在。
幸运的是,在实际使用中,看到遇到这种问题的情况非常少。最常见的缺失方法已经有三位开发者报告过,而且这些问题对于他们来说都很容易修复。在这么多 C++ 开发者中,只有这几个人遇到过这个问题!但如果你有老旧代码库,且担心这个问题,接下来就是你可能遇到的情况以及解决方案。
你切换到新平台后,重新编译代码。然后,你会看到编译错误,提示某个方法找不到。
你可能会想:“奇怪,这个方法以前是可以用的。” 然后你可能会回退到旧版工具链(它们并排安装,可以方便地进行切换),验证一下:“嗯,确实能正常工作。”
这时,你可能会通过 Google 查找类似的错误信息,发现搜索结果中找到了一个类似但不完全相同的解决方案:
比如,你搜索'c++ randomize',然后找到的结果是'std::rand'。这其实就是一个提示:你正在使用的是 C++ 标准化之前的非标准方法。
幸运的是,日常所遇到的每个案例都很容易修复。这些方法的存在是因为当时 C++ 还没有标准化,但现在 C++ 标准库提供了这些方法的标准版本。
大部分代码在升级过程中已经去除了这些旧方法,或者开发人员发现这些替换方法非常简单。
官方也在考虑制作一个“适配库”,帮助那些需要与旧版 RTL 兼容的开发者,但由于目前反馈数量较少,还不确定这个功能是否有必要。
这个工具链升级提供了一个现代、符合标准的开发环境,但使用旧版代码库并依赖于遗留 RTL 调用的开发者,可能会遇到这些问题。幸运的是,大多数问题都可以通过简单的代码替换来解决,而 C++Builder 团队也愿意提供支持,帮助你顺利过渡到新的工具链。
关于如何解决在迁移到新工具链时可能遇到的 RTL 兼容性问题,如果你有任何疑问或需要进一步的帮助,请联系在线客服~
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
Add-in Express VCL 是一个可用来编写 Borland Delphi 组件对象模型(COM)插件、智能标记(Smart Tag)以及实时数据服务器(RTD Server)的可视化工具。
本文将手把手教你如何用VMProtect对这一关键函数进行虚拟化保护,大幅提升代码安全性,让逆向工程攻击者无从下手!
在 PDF 文档中添加页眉和页脚有助于保持一致的版式和专业的外观。本文将介绍如何使用 Spire.PDF for Java,通过 Java 在现有的 PDF 文档中添加页眉和页脚,并提供详细的步骤和代码示例。
对于开发人员来说,由于自动化和定制化,通常首选使用编程方法来去除 PDF 中的水印。Aspose.PDF 提供可靠且可定制的解决方案,可无缝集成到各种应用程序中,确保准确性并保持文档完整性。
在 Web 环境中,将 PDF 转换为 HTML 有助于提升内容的可访问性和交互性。本文将介绍如何在 React 中使用 JavaScript 和 Spire.PDF for JavaScript 库将 PDF 转换为 HTML。
Embarcadero旗下的C++Builder是一款高性能的可视化集成开发工具,主要用于Windo
RAD StudioRAD Studio® 是一款终极 IDE,用于在 Delphi 中快速构建引人注目的单源多平台本机
Add-in Express for Office and Delphi VCLAdd-in Express VCL 是一个可用来编写 Borland Delphi 组件对象模型(COM)插件、智能标记(Smart Tag)以及实时数据服务器(RTD Server)的可视化工具。
RAD ServerRAD Server软件是一款强大且高效的应用程序开发工具
DelphiDelphi® 是先进的 IDE,可快速开发单源多平台高性能本机应用程序。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢