【问题标题】:MS Visual Studio can use C++/CLI or MFC to create Windows GUI Apps, what does C++ Builder (RAD Studio) use? [closed]MS Visual Studio 可以使用 C++/CLI 或 MFC 来创建 Windows GUI 应用程序,C++ Builder (RAD Studio) 使用什么? [关闭]
【发布时间】:2021-10-04 21:39:03
【问题描述】:

最近一个名为 codebeauty 的 youtube 频道向我介绍了 C++ Builder (RAD Studio)。这是 Embarcadero 的一个程序。这似乎不是由 Microsoft 创建的。

现在我在这里有点困惑。如果 C++ Builder (RAD Studio) 不使用 C++/CLI .Net,也不使用 MFC,那么它实际上如何让 C++ GUI 工作?此外,为什么想要在 C++ 中创建 GUI 应用程序的人不使用 C++ Builder (RAD Studio),因为这是一个旧程序,现在必须稳定,并且应该是 MFC 的更简单和更快的替代品?这是一个历史悠久的程序,但我从未从任何地方或任何人那里听说过。

【问题讨论】:

  • Builder 直接使用 C++,并使用与 Delphi 相同的 VCL(Visual Component Library),比 MFC 更广泛,更易于使用。 IDE 做得非常好,与 VS 相比,我更喜欢它。 VCL 的灵活性在于您可以使用 Builder 开发的组件和为 Delphi 开发的组件。

标签: c++ c++builder


【解决方案1】:

最近一个名为 codebeauty 的 youtube 频道向我介绍了 C++ Builder (RAD Studio)。这是 Embarcadero 的一个程序。这似乎不是由 Microsoft 创建的。

不,C++Builder 不是由 Microsoft 制造的。它最初是由 Borland 在 1997 年创建的,作为 Delphi 的 C++ 对应物,Delphi 也是由 Borland 创建的。 2006 年,Borland 成立了一家名为 CodeGear 的独立公司,继续开发 Delphi 和 C++Builder。 2008 年,CodeGear 被出售给 Embarcadero。

现在我在这里有点困惑。如果 C++ Builder (RAD Studio) 不使用 C++/CLI .Net,也不使用 MFC,那么它实际上如何让 C++ GUI 工作?

与其他供应商的做法相同。 C++Builder 使用自己的类框架,称为 VCL(仅限 Windows)和 FMX(跨平台)1,它们在内部调用底层操作系统框架,例如 Windows 的本机 GDI 和 UI控制 API。

1:它们主要是用 Pascal 而不是 C++ 编写的,因此它们也可以在与 C++Builder 共享相同 IDE 架构的 Delphi 中使用。 C++Builder 和 Delphi 之间存在一定程度的二进制兼容性,因此它们可以相互共享库。

另外,想用 C++ 创建 GUI 应用程序的人为什么不使用 C++ Builder (RAD Studio)

部分原因是,在 1990 年代末/2000 年代初,当时 C++Builder 正处于鼎盛时期的开发人员并未广泛了解/使用它。如今,Embarcadero 的主要关注点是 Delphi,Delphi 中引入的许多功能直到多年后才进入 C++Builder。

部分是因为它非常昂贵。直到最近几年,还没有可用的免费社区版,甚至没有免费的命令行编译器。它更适合专业开发人员和大学,而不是业余爱好者。

部分原因是直到最近几年,它还主要基于过时的 C++ 技术。在鼎盛时期,C++Builder 仅支持 C++98。在 2000 年代以后,随着 C++ 的不断发展,旧的 Borland 编译器跟不上,因此大多数 3rd 方库/框架供应商放弃了对它们的支持。此外,Borland/Embarcadero 曾经是 C++ 标准委员会的成员(不确定他们是否仍然是),但似乎永远无法将其专有的编译器扩展标准化(VCL/FMX 严重依赖它们)。但是,最近几年,Embarcadero 一直在将 C++11、C++14 和 C++17 合规性推入其较新的 C++ 编译器(基于 Clang)中,因此这种趋势开始有所逆转。

还有很多其他原因。我们这些使用 C++Builder 的人喜欢它(或者至少容忍它的缺点)。不使用它的人,他们有自己的理由或者没有开始使用它。

因为这是一个旧程序,现在必须稳定

VCL 框架是相当成熟和稳定的,是的。但与 Delphi 相比,C++Builder 作为一个产品在功能和稳定性方面实际上有着相当动荡和令人失望的历史。

C++Builder 实际上在 2002 年就终止了(库/框架作者停止支持它的另一个原因),然后在 2004 年复活。在那之前,C++Builder 和 Delphi 还不错彼此相提并论。但是在 C++Builder 停产期间,Delphi 迁移到了全新的 IDE 架构,并且一直在推出新功能。当 C++ 在同一个 IDE 中复活时,它并不像在旧 IDE 中那样稳定,而且它一直在追赶 Delphi。

时至今日,C++Builder 的 IDE 体验存在相当多的错误、性能不佳、功能缺失/不完整,以及各种 C++ 编译器之间的整体不一致/兼容性问题,其中现在有很多 2.

2:在撰写本文时,支持 5 个平台,每个平台有 1 个编译器,但 32 位 Windows 除外,它有 3 个编译器。

并且应该是 MFC 的更简单快捷的替代方案?

那,我通常会同意,是的。快速的 GUI 开发一直是它的一大亮点(Delphi 也是如此)。

这是一个历史悠久的程序,但我从未从任何地方或任何人那里听说过。

在 Wikipedia 上阅读有关 C++BuilderBorlandCodeGear 的信息。

【讨论】:

  • 其实 C++ Builder 10.4.2 在稳定性方面是一大进步。最后。
  • @MikeVersteeg 我不知道,我还没用过。我只是去阅读我在各种 C++Builder/Delphi 社区中阅读的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多