惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
月光博客
月光博客
V
Visual Studio Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
C
Check Point Blog
腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
SecWiki News
SecWiki News
博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
F
Full Disclosure
The Cloudflare Blog
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
AI
AI
N
News and Events Feed by Topic
T
Tor Project blog
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog

挖井

免费搭建域名邮箱,使用Cloudflare、Mailgun和Gmail 被优化了 Windows平台使调试器在子进程启动时attach 更新FreeBSD、NetBSD、OpenBSD、DragonflyBSD 湖州龙之梦乐园跨年 修改DNS去广告 Debian上使用Nginx搭建WebDav服务要点 武夷山之旅 配置Debian路由器双WAN接入
C++ Builder12.1试用体验
missdeer · 2024-07-14 · via 挖井

这几天突然又想试试C++ Builder,现在最新的版本是12.1。曾在大学时使用C++ Builder 6写过一些小程序,这么多年过去,源代码丢掉了一些,还能找到一些。用12.1是不能直接打开6.0的工程文件的,需要新建VCL工程,再把窗体文件、源代码文件和头文件添加进去,才能编译。12.1的VCL整体上变化不大,主要是字符串类变成了UnicodeString,以前的C++ Builder和Delphi在字符编码方面的支持确实是一大弱项,项目代码拷过来后,主要就是字符串部分需要修改一下。

6.0的时候编译器就是Borland经典C++编译器,曾经是能与微软扳手腕的存在,12.1中虽然仍然保留了这个经典编译器,但已经不推荐用了,它只能生成32位代码,而且对C++新标准的支持也没跟上,C++ Builder几经易手,后来基于Clang 5这个版本魔改实现了对VCL的支持,以及跨平台目录代码编译的支持,不但能生成Windows可执行代码,还能生成Android,Linux,iOS,macOS的可执行代码,而且Windows平台上还同时支持生成32位和64位代码,都是得益于Clang这个编译器。12.1版本在Windows平台上共有3套编译器,分别是经典32位编译器bcc32,基于Clang 5的32位编译器bcc32c/bcc32x和64位编译器bcc64,以及基于Clang 15的64位现代(modern)编译器bcc64x。

具体使用哪套编译器,要根据自己的实际需求来考虑。一般说来32位编译器生成的可执行文件比64位的文件体积小很多,但64位的程序可以使用更大的内存以及更宽的处理位宽带来的更快的运行速度。所以我觉得如果要编译32位程序,则使用基于Clang 5的编译器,如果要编译64位程序,则使用基于Clang 15的现代编译器。有个需要注意的是,64位现代编译器刚上市,有不少小问题,比如不能动态链接VCL的运行时DLL和BPL,默认会把调试符号打进exe文件导致文件体积暴增(可在链接命令行中增加-pdb nul.pdb规避),暂时不支持CMake构建,编译速度慢等等。

C++ Builder 12.1还集成了MSVS上的强力辅助插件Visual Assist X,我也是这才发现原来小番茄不知道什么时候已经被Embarcadero收购了。曾经C++ Builder 6上的自动完成非常快且可靠,自那以后慢慢就废掉了。现在集成了小番茄倒是有所改善,但还是很容易就不工作了,需要在工具菜单上选择清理VA缓存,再重启BDS,重建VA索引,才能重新工作。

总体上,写一些简单UI的Windows程序使用C++ Builder还是很方便的,可以生成体积较小的本地代码,但是这个IDE本身质量方面比较差,勉强用用还可以。真是怀念Borland时代的产品啊。