【问题标题】:C++ Builder vs Delphi vs MFCC++ Builder vs Delphi vs MFC
【发布时间】:2009-06-14 15:29:27
【问题描述】:

我正在学习 MFC,发现它不太好用。

我听说过很多有关 Delphi 的信息。对 Delphi 的研究将我引向了 C++ Builder。

C++ Builder 是否为 C++/MFC 提供了一个严肃而好的替代方案? C++ Builder 比 MFC 好吗? C++ Builder 比 Delphi 好吗? (我听说过很多关于 Delphi 的好消息)

谁能给我一个 C++/MFC、Delphi 和 C++ Builder 之间的比较?

感谢您的帮助。

【问题讨论】:

  • 如果您来自 .NET 背景,为什么要考虑像 MFC 这样的东西,它或多或少是一种编写 Windows GUI 的传统方式?另外,我假设您知道 MFC 是一个库(与 C++ 一起使用)而 Delphi 是一种语言?

标签: delphi mfc c++builder


【解决方案1】:

我建议你去 Delphi。

我的优点是

  • 语法非常简单易读。你知道 C++ 让你用奇怪的变量等编写“神秘”和“神秘”的代码。地狱!一半的c++以“__”为前缀

  • 性能几乎与 C++ 应用程序相同。如果您不使用VCL,那么它应该是相同的。但是没有 VCL 的 Delphi 是什么。

  • --本机-- 应用程序。这意味着绝对没有其他需要担心的,没有框架,没有运行时。 (您仍然可以使用运行时包构建应用)

  • 数据库连接也是它的强项之一...非常强的一个

  • 功能强大的可视化设计器,您几乎可以在设计时构建应用程序的所有界面。

而且名单还可以继续……

哦,总而言之,Delphi 可以做出 C++/C#/C 等可以做到的一切。除了设备驱动程序,所以如果您不打算为打印机或其他东西编写驱动程序,Delphi 是您的最佳选择。

【讨论】:

  • (我们不要忘记 C++ 编译器的编译器错误消息甚至比语言更神秘。至少与 Delphi 相比)
  • > 见鬼!一半的 c++ 都以“__”为前缀,这是多么愚蠢的事情。昨天想知道关于Delphi的那些蠢事,没必要反着补。
  • 我同意。这会混淆一些 C++ 程序中糟糕的样式选择与语言本身的特性。
【解决方案2】:

Delphi 社区仍然活跃(您认为为什么会有 Delphi 2009?)。 Delphi 带有丰富的组件集,并且有蓬勃发展的第三方组件。在专业环境中同时使用过 MFC 和 Delphi,我可以轻松地说 Delphi 在易于开发和整体质量方面要好得多。

来自 C#,Anders Hejlsberg 已经在 Delphi 中考虑过类似的概念,例如 TComponent、TDataSet、属性和事件(成为委托)。 Delphi 也可用于消费 COM 对象、编写 Web 服务、编写自定义报表的报表引擎。

但是等等,还有更多。查看 DevExpress'ExpressQuantumGrid

【讨论】:

    【解决方案3】:

    您可能想查看this link。由于没有使用过 MFC,我无法评论 MFC 相对于 Delphi 的优势,所以我跳过了前两个问题。

    • 如果您要开发 GUI 数据库驱动的应用程序,请务必使用 Delphi。
    • 可以从 Delphi 调用 C/C++/C# DLL。
    • 在开发 Win32 Native 应用程序方面,Delphi 非常快速和简单。见RAD's definition

    【讨论】:

      【解决方案4】:

      如果您正在使用 C++Builder,您可能希望使用 VCL,而不是 MFC。

      至于 VCL/MFC 或 Visual C++/C++Builder 的比较,最近有一个 thread 用于比较。

      【讨论】:

        【解决方案5】:

        您必须权衡您的选择,并稍微研究一下您的水晶球。

        C++ Builder 使用 VCL 框架,这无疑比 VC++/MFC 更容易且更“可视化”(即支持设计器)

        但是,如果您有机会必须使用 .NET(= MS 提供的所有不错的新 API),那么您可能会更好地使用 VC++,我不希望 Codegear 随时支持 C++/CLI很快。

        还有其他这样的考虑,所以反问是:你打算用它做什么?

        【讨论】:

        • .NET 来自 Microsoft 的新 API。 .NET 包含 Windows API 的新包装器。使用 .NET 没有什么是您无法使用 C++ 或 Delphi 完成的。你不能总是以同样的方式来做,但你仍然可以做。
        【解决方案6】:

        我建议您使用 MFC,让我们的 Delphi 程序员获得竞争优势。 ;-)

        【讨论】:

          【解决方案7】:

          你的问题很困惑。 C++ Builder 只是 C 和 C++ 的 IDE。 MFC 是一个用于 C++ 编程的库。 C++ Builder 可以在有或没有 MFC 的情况下使用,反之亦然。 Delphi,也称为Object Pascal,是另一种编程语言。

          注意:有一个whole forum 专门用于将 C++ Builder 与 MFC 结合使用。

          【讨论】:

          • C++ Builder 真的可以和 MFC 一起使用吗?它是否附带 MFC 源代码,以及部署基于库构建的应用程序的许可证?特征矩阵embarcadero.com/products/cbuilder/C-Builder_Feature-Matrix.pdf 甚至没有提到MFC。
          • 当然可以用。您可能必须先购买 MFC,但是一旦您拥有合法副本,就没有什么能阻止您将它与 C++ Builder 一起使用。
          • MFC 曾经与 C++Builder 一起提供(直到 v6)。我不知道最近的 MFC 版本是否仍然可以与 C++Builder 一起使用,但是 C++Builder 编译器仍然具有 MSVC 兼容性开关,它启用了 MFC 过去依赖的所有编译器怪癖。
          • 这个问题并没有那么混乱,虽然瓷砖看起来有点奇怪。 C++Builder 与使用 VCL 紧密相连。所以这是一个问题,首先是哪个框架,然后是支持工具。
          • 我不同意。诸如“C++ Builder 是否比 Delphi 更好”之类的问题清楚地表明他混淆了工具和语言。
          【解决方案8】:

          您可能想查看这些 SO 问题。
          虽然不能与 C++/MFC 进行比较,但它们突出了 Delphi 的许多品质。

          https://stackoverflow.com/questions/179319/what-language-or-rad-ide-do-you-recommend-for-building-shareware

          What language do I use for my project?

          【讨论】:

            【解决方案9】:

            我的建议是忘记 MFC。这个框架真的不再是这个时代的了。它本质上是 Windows API 的一个薄包装器,因此只比原始 Windows C 编程更容易掌握。到目前为止,我的经验是,用 MFC 编写和维护软件所花费的时间大约是用 C++Builder 或 Delphi 编写的 2 到 3 倍。 选择 MFC 的一个原因可能是您希望靠近 Windows API,可能是因为您调用了一些奇特的函数。如果是这样,C++Builder 是一个更好的选择。易用性接近 Delphi,包括易于使用的 RAD 控件,但它允许您直接以其本地语言调用任何 Windows API 函数。即使底层代码是相同的,如果你从 Delphi 调用它,你总是必须在 Pascal 和 C++ 之间进行心理切换。

            但最终我永远不会在 MFC 中开始一个新项目,而是使用 C# / .NET...

            【讨论】:

              【解决方案10】:

              您是否正在同时学习 C++?你已经知道帕斯卡了吗?如果两者都是,那么德尔福对我来说听起来是个不错的选择。我想你想用 MFC 编写的所有应用程序都可以使用 Delphi 编写。

              【讨论】:

                【解决方案11】:

                我在 c++ builder 上工作了 3 年,使用 VB 和 VC++ 后感觉很棒。 很容易创建漂亮的现代界面,很容易维护程序,良好的性能。 但它有点不稳定,IDE 很慢而且不稳定。 VC++ 仅在 IDE 和编译器稳定性方面更好,速度更快。但是MFC真的很可怕,在MFC上做一个没有界面的驱动程序或系统程序是可以的,但是在MFC上用简单的GUI程序做一个好看的程序,真的我无法想象它需要多少时间,以及如何维护!

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-05-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-10-20
                  相关资源
                  最近更新 更多