【问题标题】:C++ Builder or Visual Studio for native C++ development?用于原生 C++ 开发的 C++ Builder 或 Visual Studio?
【发布时间】:2010-10-01 01:07:09
【问题描述】:

我决定要更多地使用 C++ 进行本机代码开发。我正在尝试决定使用 CodeGear C++ Builder 2009 还是 Visual Studio 2008 是否会更好。我目前使用 Delphi 2007,所以我对 C++ Builder 的 IDE(它与 Delphi 相同)以及VCL 和 RTL。

我从来都不是 MFC 的忠实粉丝(从我在 VS 6.0 时代第一次使用它开始),但从那时起就没有仔细研究过它。

我很想听听一些对这两种 IDE 都有经验的专家的意见,无论它们是否是最新版本。

现在,我倾向于 C++ Builder,因为我相信 VCL 比 MFC 更健壮且更易于使用 --- 但正如我所说,我已经有一段时间没有使用 MFC 了。我对构建依赖于 .NET Framework 的程序不感兴趣,因为我部分地自学了本地开发。 MFC 仍然是 Windows C++ 的王者吗?还是 WTL 或 ATL 是大事?

有没有 C++ 大师想分享他们的意见?

编辑:我知道 MFC 不是 Visual Studio 的唯一 gui 工具包。但是,我正在寻找一些基于 GUI 工具包 + IDE 的建议。对于 C++ Builder,只有 1 个真正的选择,即 C++ Builder + VCL。对于 VS 2008,它是 VS + MFC/ATL/WTL/QT....让我很困惑,因为我对它们了解不多。

【问题讨论】:

    标签: c++ visual-studio c++builder


    【解决方案1】:

    对于原生 C++ 开发,我既不想使用 C++ Builder 也不想使用 VS。这些 IDE 都针对其框架进行了优化。

    我宁愿选择 Eclipse、Code::Blocks 或 Codelite。这些 IDE 没有针对任何框架进行优化,您可以在严重平台上的多个编译器之间切换。

    【讨论】:

      【解决方案2】:

      改用 Lazarus。一次编写,多次编译。在多个平台上运行。任何来自 Delphi 和 Kylix 背景的人都会对这个 RAD 工具感到非常自在。至于未来,它是开源的,拥有强大的社区,发展将不受商业限制。

      【讨论】:

        【解决方案3】:

        2012 快结束了。我是 Borland C++ 用户,然后转而使用 VC++ 6.0。最近有一个客户要求他们的产品有一个 GUI 端并且不希望依赖于 .NET 框架。所以我探索了 Embarcadero RAD Studio XE2。

        谈到 C++ RAD 开发,我认为即使是 MSVC++ 也无法与之相提并论。就像一阵微风。虽然我在编译模板时发现了问题。例如,如果您定义了一个仿函数,并且想要将构造函数与仿函数调用结合起来,那么您不能在 C++B 中这样做,您必须创建一个对象,然后单独调用仿函数。还有其他问题,因为我无法完全编译 Poco 库。

        我通过在 VC++ 中创建 DLL 并从 C++B 前端调用它们找到了解决方案。两者兼得。

        希望 Embarcadero 尽快赶上标准。

        【讨论】:

          【解决方案4】:

          在基于 UI 的开发和面向数据库的应用程序方面,C++ Builder 远远优于 MS-VS。 MFC 太烂了!!但是VS有更好的调试能力。

          【讨论】:

            【解决方案5】:

            几年前我喜欢 C++ Builder。太棒了。它的 VCL 比 VS 的糟糕 MFC 要好得多。然后事情每年都在变化。

            生成器一直在关闭; 1. Builder 没有更新任何真正的功能。 2. Borland 放弃了用 C++ 重写 VCL 以与 Kylix 和 Builder 一起使用的想法 3. CodeGear 的混乱和 Builder 不确定的未来让很多人放弃了这个产品。

            VS 越来越好; 1.IDE改进很多 2. windows平台上最不符合标准的编译器变成了最符合标准的编译器(当然不包括MinGW上的GCC) 3. .NET 出现了,有托管 C++,然后是 C++/CLI,使得在 C++ 中使用这个框架成为可能

            我们有新的、强大的球员 1. 日食 2.Qt创作者

            和新的 GUI 工具包

            1. wxWidgets
            2. Qt4 现在也有开源许可证

            总结; Builder 死了,因为 Borland

            1. 当时认为 Delphi 太棒了,他们真的不需要任何其他东西来赚钱
            2. 陷入 Java 炒作,投入过多资源
            3. 不了解 C++ 的强大功能,而是堆栈到 pascal,它一直是学术语言,没有用它创建过真正的产品

            【讨论】:

            • Qt 不像 wxWidgets 那样具有真正的本地端口。我们的意思是,即使 Qt 非常逼真地绘制它们,Qt 在每个平台上都绘制自己的小部件。 (wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits#Qt)
            • “1. Builder 没有更新任何真正的功能” 在 2004 年确实如此,当时 Borland 似乎会放弃 C++Builder 并转而使用 C++BuilderX。自 (C++Builder 2006, 2007, 2009) 以来发生了很多事情。
            【解决方案6】:

            嗯,你可以使用 Eclipse + MinGW + Qt4 + QT Eclipse Integration 并获得所有东西:调试器、可视化 GUI 设计器等。

            请注意 Qt4 是双重许可的:开源和商业许可。

            您还可以将 Qt4 与 Visual Studio(甚至与 Express)结合使用,并使用 VS 为您提供的所有优点。

            对我来说,Qt4 是要走的路,VS over Builder。

            【讨论】:

              【解决方案7】:

              如果您在 Windows 上进行纯 C++ 开发,那么很难击败 VS。编译器速度很快,非常符合标准,并且可以生成经过优化的代码。调试器是任何平台上最好的。 IDE 没问题。

              它显然也是 Windows 上支持最广泛的编译器工具链。下载任何开源项目/库,如果支持 Windows,它很可能是使用 VS 构建和测试的。它的受欢迎程度也确保它是简历中最有用的。

              Builder 为您提供什么?一个合理的 GUI 库。嗯,这很好,但还有许多其他不错的 GUI 工具包(wxWidgets、GTK、Qt 等)。许多都是开源和跨平台的。

              但是,这些天来,我发现重组我的应用程序以提供 API 并在其上以不同的语言构建 GUI 会更好。 C++ 在 GUI 开发中的优势不是。至少今天不会……

              我会选择 - 并推荐 - VS 而不是 Builder。

              【讨论】:

                【解决方案8】:

                关于 CodeGear 的最后一个 C++ Builder(我的意思是 2009 版)的一件事是,它的更新真的会让你讨厌这个 IDE。
                安装第二次更新后,我发现 if/else 块无法正常工作。它可以输入 IF 语句,但不能输入 else 语句——而且它不依赖于情况——这个语言指令根本就停止了工作。我花了大约两三个小时才弄明白——我开始在 VS 中开发所需的 win32 应用程序,我认为它比 CodeGear 产品更可靠。 我不喜欢的第二个功能是您不能关闭 Unicode 支持并且必须明确使用 ANSI 版本的 win32 函数(例如 SendMessageA(...)),这非常无聊。 我几乎没有按时完成使用 VS2008 完成的工作。
                这只是我的经验,做出的选择是你的

                【讨论】:

                • 你有if/else问题的QC报告编号吗?
                • 另外,如果您设置“TCHAR = char”选项,那么您将获得 ANSI win32 调用。对于 Wide Win32 调用,将其设置为“wchar_t”。
                【解决方案9】:

                只是为了它,我们可以把 eclipse 也加入其中吗?
                我刚刚发现在 Eclipse 中工作比在 Visual Studio 中工作要好。

                除非您将 VS2008 与 winforms 一起使用,否则 gui 支持是通过 windows 模板(通常来自资源),这是旧帽子,您可能不想使用。所以 VS2008 中的 gui 支持并没有那么特别。

                至于 gui 工具包,或许见What is a good GUI/widgets toolkit

                【讨论】:

                  【解决方案10】:

                  我已经多年没有使用 C++ Builder,但在 C++ 调试方面,Visual Studio 2008 远远领先于其他 IDE 和以前的 VS,特别是如果您使用 STL 容器,因为它可以很容易地检查它们的内容.

                  但是,在 GUI 方面,C++ 现在对于 Microsoft 来说是非常二流的语言。未来的方式是 WPF 和 C++ is not supported as a XAML-friendly language我们将继续投资于 C++/CLI,以使开发人员能够将本机 C++ 资产暴露给托管世界,反之亦然。我们相信纯 .NET 开发最好使用以 .NET 为中心的语言,例如 C# 或 VB。对 C++/CLI 的投资将主要在本机管理的互操作领域。

                  所以,要创建一个现代外观 C++ GUI,你最好的选择可能确实是 VCL - 如果 VCL 继续使这成为可能 ;-)

                  【讨论】:

                    【解决方案11】:

                    在 Windows 开发方面,没有什么比 Visual Studio 更胜一筹。它功能非常丰富,并且具有出色的调试器,更不用说庞大的用户社区来帮助您解决可能遇到的任何问题。如果一家公司为他们自己的操作系统开发的工具不是最好的,我会担心他们在软件世界中的地位。但是,如果您不需要额外的功能并且绝对需要具有拖放功能的 RAD 工具(除了 MFC),那么 C++ builder 也不会落后太多。事先使用 delphi 环境对您来说只是一个优势。

                    【讨论】:

                      【解决方案12】:

                      简单的答案是,对于纯 C++ 开发,它必须是 VC++。

                      扩展:作为纯 C++ 开发环境,您根本无法击败 VC++,调试器更好,IDE 更出色(当然,恕我直言)。由于这些原因,我使用它来开发库,然后从 C++Builder 中使用这些库。

                      但是,一旦您开始进行 UI 开发,或者您可以使用 VCL 或组件 C++B 解决的任何问题,都是更好的选择。与 VCL 相比,MFC 或 ATL 相形见绌,因此您只能使用 .NET,这可能是更好的选择,但不是

                      根据供应商最近几年的“指导”,我不确定是否会推荐使用 C++B 或 Delphi 构建新产品。然而,情况似乎正在好转,但在再过一点时间之前,很难说这些承诺是如何变成现实的。

                      【讨论】:

                      • 你是指免费版(Visual Studio Express)吗?我发现它太有限了。
                      【解决方案13】:

                      鉴于您已经了解 Delphi,我第二次选择 C++ Builder。自 VS6 时代以来,MFC 并没有太大变化,因此使用 MFC 编写的代码仍然看起来很糟糕。但是,VS 发生了变化,现在是一个相当不错的 IDE。

                      另外,请记住,C++ Builder 作为一个产品线并不稳定。过去有时它没有得到维护/它的未来不明确等。所以如果你想构建一些持久的东西,你就会抓住机会。

                      【讨论】:

                        【解决方案14】:

                        来自 Delphi,您会发现 VCL 可以直接与 C++ Builder 一起使用。有一些奇怪的地方,比如 C++ 并没有隐藏 TObjects 都是真正的指针这一事实(Delphi 对你隐藏了),并且像数组属性这样的一些东西的访问方式不同。

                        两三年前,我一直在寻找摆脱 C++Builder 的任何方法,但现在,随着最近发布的版本(以及 Embarcadero 对 Codegear 的收购),我对产品和方向感到满意。

                        您会发现使用 C++Builder 时字符串类型的数量和各种潜在的不兼容性非常痛苦,但您会习惯的! (std::string、char[]、wchar_t[]、TCHAR、AnsiString、WideString、UnicodeString 和 String 等等)

                        我个人会投票给 C++ Builder——因为它具有双向 RAD 和 VCL,尽管它可能不是学习现代 C++ 习语的最佳方式。

                        【讨论】:

                          【解决方案15】:

                          Visual Studio 和 MFC 不一样。我一直都在使用 Studio,并且像瘟疫一样避免使用 MFC。您可以使用 WTL、ATL、Win32 或任意数量的库来创建没有 MFC 的应用程序。

                          【讨论】:

                          • 如果您不使用 MFC,那么您更喜欢哪些其他 GUI 库?
                          • +1 表示 WTL。它不是官方支持的,但它是我用过的最好的 GUI 库之一(VCL 之后第三,TurboVision 之后第二)
                          • 通常是 WTL(虽然我会直接使用 Win32 或自己选择 MFC)
                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2011-03-02
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2014-09-23
                          • 2011-08-11
                          • 1970-01-01
                          相关资源
                          最近更新 更多