[原创]仅需小小的改变,B++ Builder 12的代码完成提示即可完美工作.

news2025/1/11 21:41:14

[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
QQ: 643439947
个人网站: 80x86汇编小站
编程生涯: 2001年~至今[共22年]
职业生涯: 20年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
将近20年的期盼, C++ Builder 12终于在2023年11月08日发布了. 为什么我那么激动? 因为C++ Builder才是C/C++领域中真正意义的快速开发工具. C++ Builder 3.0/4.0的发布, 震惊全世界, 原来C/C++还能这样快速开发. 从此以后引起了微软的重点关注, 并开始相互大战, 经典之作VC++ 6.0和c++ Builder 5.0进行博弈, 随着时间的推移, 结果C++ Builder没落了, 但是让我一直无法忘怀C++ Builder的VCL. 但不管怎么说时隔20年, 那个强大的C++ Builder又回来了, 由C++ Builder 5.0变成了C++ Builder 12.

[我为什么推荐使用C++ Builder 12]
原因很简单, 就是它开发速度够快, 界面开发和C++ 17高度集成, 开发一个程序, 不需要再找其他界面库. 想想VC++万年不变的MFC, 让我果断放弃, 当年C++ Builder落败之后, 我随后转向了Delphi开发, 那是正确的选择. 虽然我最喜欢的语言是C/C++, 但苦于界面开发库的繁琐, 我并没有大量入坑VC++的MFC. 然而首选Delphi做界面配合VC++做内核. 这样的双工具开发模式, 一做就是快20年了. 但是现在这个模式要被打破了, C++ Builder王者已经归来, VC++会当作备胎来使用, 虽然现在VC++ 2022在c/c++语言上做得很强, 已经跟了c/c++ 20标准, 而C++ Builder 12目前仅支持c++ 17标准. 但这不是问题, 重要是我看上了C++ Builder最强悍的快速开发, VCL配合C++ 17足够吊打VC++ 2022了.

[C++ Builder的魔怔: 代码完成提示]
C++ Builder 5.0落败之后, 我就转向Delphi配合VC++双工具开发模式. 在C++ Builder 12发布之前的时期, 我都没有去尝试过C++ Builder的版本, 我仅仅只是看看看评论区的体验文章, 吐槽最多就是C++ Builder代码完成提示, 仅仅这个有缺陷的功能, 就劝退大量C++ Builder的死忠(包括我在内, 没有好的代码完成提示, 我也不想用), 直到现在C++ Builder 12还有人在吐槽. 这里多说一句话: 不得不说, 你用惯Delphi和VC++的代码完成提示功能之后, 你就再也回不去, 因为这是业界的标杆. 回到原点我继续往下说, 为什么我又重新拥抱C++ Builder的另一个重要原因就是代码完成提示功能得到质的飞跃, 因为集成了VAX代码助手. 就这样, 在C++ Builder 12的广告宣传下: 现代C++ 17, 牛逼的VCL, 强悍的VAX代码助手, 三管齐下, 我终于在2023年11月08日凌晨1点, 正式安装C++ Builder 12. 两个字总结: 惊艳.

[C++ Builder 12优秀的代码完成提示体验]
安装完之后, 我从凌晨1点多体验到凌晨3点, 输入了一些我经常写的代码, 完美的自动提示, 没有任何瑕疵. 此时此刻不需要跟VC++比较, 只要用心的体会, C++ Builder 12的代码完成提示的完美度可以让你专心写代码. 

[不要再吐槽和纠结C++ Builder 12的代码完成提示, 你只需要做下面的一些调整]
1> C++ Builder 12的代码提示跟Delphi提示一样是 Ctrl+空格. 因此你需要调整你的输入法快捷键, 避免引起冲突
2> 如果你是一个Delphi程序员, 那么在使用C++ Builder 12写代码时, 不要带着Delphi代码输入思维去写. 因为Delphi的代码完成提示功能逻辑跟C++代码完成提示功能逻辑不一样的.
   比如打个比方: VCL库中有个方法是ShowMessage(), 如果在Delphi的代码编辑器直接输入的话是自动提示的, 但是在C++ Buildre是不行的. 因为c++代码完成提示功能是根据c++语法来定制的, 比如命名空间, 正确地输入是Vcl::Dialogs::ShowMessage()这样才会提示. 但是很多人认为这个是bug, 这里可以明确告诉你, 这个不是bug, 就算你用强大的VC++ 2022代码编辑器也是一样的, 必须要按照命名空间进行输入.
3> 放下你的不良代码输入习惯, 请用正统的C/C++代码输入习惯, C++ Builder 12的代码完成提示功能才会完美运作. (尤其提醒的是Delphi程序, 这点一定要改, 不要总是拿Delphi代码的提示逻辑去跟c++ Builder比较, 这是没有意义的)

[总结]
我今后的开发, 会慢慢重度使用C++ Builder 12, VC++会慢慢转为轻度使用. 如果有C/C++新项目的话, 我会优先选择C++ Builder 12进行开发.

[界面欣赏]


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1203592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验室试剂耗材安全管理:从热点事件看其重要性

随着科学技术的不断发展,实验室试剂耗材在各个学科领域的应用越来越广泛。然而,随之而来的实验室试剂耗材安全管理问题也日益凸显。近年来,一系列实验室安全事件引发了社会广泛关注,使我们深刻认识到实验室试剂耗材安全管理的重要…

HslCommunication模拟西门子读写数据

导入HslCommunication C#端代码(上位机) 这里要注意的是上位机IP用的当前电脑的IP。 using HslCommunication; using HslCommunication.Profinet.Siemens; using System; using System.Collections.Generic; using System.ComponentModel; using Syste…

Ridgeline plot / 远山图 / 山脊图 怎么画?怎么优化?

工具 Origin 2022 当然,用Matlab、Python也是可以的。 颜色配置 色卡调整

ehcart散点图x轴不按照顺序排列的问题

如图所示,一开始我x轴用的type为category,所以导致x轴的顺序是乱的,如下所示: 后来去官网看了下文档,才知道只需要type改成value就可以了!!!差点就去写for循环排序了呀

正交矩阵的定义

对于n阶矩阵A,如果,其中为单位矩阵,为A的转置矩阵,那么就称A为正交矩阵。 对于正交矩阵, 对于正交矩阵,其列向量都是单位向量,行向量都是单位向量

Databend 开源周报第 119 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 用户案例&#…

ENVI IDL:如何生成FY4A快照

01 数据说明 FY4A全圆盘(DISK,全球)多光谱影像,panoply软件打开数据层次结构如下: 我们生成快照主要使用到其中的NOMChannel01、NOMChannel02、NOMChannel03进行快照显示,注意我并没有进行辐射定标。 02 生…

《QT从基础到进阶·二十三》弹窗提示框QMessageBox和QCloseEvent事件

1、正常信息提示 QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);消息框按钮判断: if(QMessageBox::Ok QMessageBox::warning(this,"温馨提示","是否保存设置?…

【Android】TabLayout设置使用自定义的样式的图片显示问题

序言 TabLayout我们经常使用,用来和ViewPager2进行组合使用,做多Fragment切换页面效果。 TabLayout我们经常看到的的显示效果是上面文字,下面一个线段,在各大浏览器/新闻类APP可以看到,这个效果也是对TabLayout配置参…

2609. 最长平衡子字符串

2609. 最长平衡子字符串 难度: 简单 来源: 每日一题 2023.11.08 给你一个仅由 0 和 1 组成的二进制字符串 s 。 如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也…

【数据结构】树与二叉树(十四):二叉树的基础操作:查找给定结点的父亲(算法Father )

文章目录 5.2.1 二叉树二叉树性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点,其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

C# Spire.Pdf将PDF文件转换为Word文件

一.开发框架: .NetCore6.0 工具:Visual Studio 2022 二.思路: 1.界面上传PDF文件,并保存 2.PDF文件转换为Word文件并保存 3.使用SHA256Hash判断文件是否已经转换过了,转换过了的话,就返回原先转换过的文…

数据——最为直接的答案

身处于这样一个数字化快速发展、竞争强烈的时代,不管是企业还是个人,大家都需要及时获取前沿动态信息,密切关注市场的变化。但是,在不计其数的企业中,到底行业top 是哪些企业引领潮流? 只有数据能告诉你最…

一款免费好用的制作电子杂志网站,发现新大陆~

你是不是也厌倦了传统纸质杂志的限制,想要尝试一种全新的阅读体验?那么,今天我要向你推荐的这款免费好用的制作电子杂志网站,绝对能让你眼前一亮! 这款网站就是FLBOOK在线制作电子杂志平台,并且界面简洁、操…

设计模式之模版方法(TemplateMethod)

模版方法 钩子函数 回调函数 在父类里面有一个模版方法,在这个方法里面调用了op1,op2,op3… 在子类里面如果想要改变父类的op1和op2 只需要重写op1和op2,那么这个重写之后的方法,可以在父类里面直接调用的到 例子: J…

LabVIEW中NIPackageManager功能介绍

LabVIEW中PackageManager功能介绍 使用NIPackage Manager可安装、更新、修复和删除NI软件。 安装NI软件 使用PackageManager浏览和安装NI软件。 1. 在浏览产品选项卡上,单击产品类别以显示该类别中的可用产品。 2. 选择要安装的产品,然后单击…

20 个好用的一行 Java代码

今天分享给大家20个 令人惊叹的 Java一行代码,让你们的工作更轻松。一起来看看吧! 1. 获取浏览器 Cookie 的值 使用document.cookie 来获取 Cookie 的值。 2. 将 RGB 转换为十六进制 3. 复制到剪贴板 使用 navigator.clipboard.writeText 轻松将任何文本…

Cesium 点线面实体

1.点 const point viewer.entities.add({ id: point, position: Cesium.Cartesian3.fromDegrees(113, 30), point: { pixelSize: 20, //像素 color: Cesium.Color.DEEPPINK, outlineColor: Cesium.Color.fromCssColorString(#fff), outlineWidth: 2, // 像素 }, }); 2.图标标注…

医院等级评审,离不开医院不良事件报告系统

医院不良事件报告系统全套源码 不良事件管理系统源码 不良事件上报系统对事件的报告、处置、跟踪、评价、分析、改进、学习等进行了综合管理,通过双向互评机制实现临床科室与职能部门之间的进一步互动,加强不良事件报告处置过程中的信息互通能力。 围绕…

Sonatype Nexus部署docker安装nexus3

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。 1、查看可用的 Nexus3版本 可以通过 Sort by 查看其他版本的 nexus3,默认是最新版本 sonatype/nexus3:latest。 https://hub.docker.com/r/sonatype/nexus3/tags…