C++ 生成器或 Visual Studio

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

我拥有一家软件开发公司。我们为以他们的名字/头衔命名的其他公司开发软件。我们在会计/ERP 市场上也有几个自有品牌。我们的会计软件约占我们业务的 60%,并且使用 C++ Builder 编写。

了解 C++ Builder 的人在从 Borland 到 CodeGear 再到 Embarcadero 的转手过程中经历了一段非常坎坷的道路,并且可能在这之间有几次转手。 C++ Builder 已经在我们的会计软件上搞砸了我们很多次。 QuickReports 出了名的错误,他们的 XML 构建描述与 GUI 没有紧密耦合,导致构建无法工作——通常是错误的界面。

在过去的 8 年中,我们一直在稳步消除对 VCL 和错误组件的依赖,但是,一些第 3 方 VCL 组件仍然不容易更换。我们使用来自 Developer Express 的 GRID 包 - 很棒的产品。

我正处在一个十字路口,当你看到这个产品糟糕的历史时,我很难证明它的价格是合理的。

因此,我正在寻找可能处于类似情况并成功切换到 Visual Studio 的其他人遵循的建议或步骤。

除了Developer Express 工具外,我们已经慢慢地将大部分应用程序移至wxWidgets。而且我们编写了自己的 TSQL 抽象,也可以移植。

有什么想法或建议吗?您是否已将您的项目移至 Visual Studio,或者您是否尝试过新的 Builder XE 以发现它以前的许多缺点现在已经消失?

寻找“去过那里,做过那个”的建议。

最佳答案

Visual Studio 无法与 C++ Builder 相比。

是的,它们都是 C++ 编译器,但是:

  1. Visual Studio 仅在使用 .NET 语言时是 RAD
  2. MFC 是“半辐射”,但与 VCL 的易用性不相上下
  3. Visual Studio 编译器更擅长生成优化代码,但 C++ Builder 使用的 Clang 相当不错
  4. Visual Studio 和 C++Builder 均符合标准(CB 使用基于 Clang 的编译器)
  5. C++ Builder 自带 Boost
  6. C++ Builder XE 比以前的版本好很多(不包括 Builder C++ 6.0)
  7. C++ Builder 中的 RAD 工具无法胜过 C++ 开发,没有什么能比得上

对于非 VCL 依赖的代码,编译器的差异可能不会对您造成太大的伤害。我有一个为 VC6、VS2008 和 Builder 2010/XE 下的客户端编译的 DLL。我不得不折腾一些#ifdef,但其中大多数实际上是针对 VC6 的。

我能提出的最大建议是不要迁移到 MFC,这就是痛苦的开始。

还要考虑对开发人员的培训。在学习新编译器的特性时,您的开发人员生成工作代码的速度会明显变慢。

话虽如此,当我在为新产品迁移到 VS2008/2010 或 Builder C++ 之间为客户做出选择时,我选择了 Builder,仅用于 RAD IDE。

祝你好运。

针对 C++Builder 10.2 (2017) 更新:

  1. 32 位和 64 位 Windows 都使用 Clang/LLVM(iOS 和 Android 也是如此)
  2. 32 位和 64 位 Windows 都使用 Boost 1.55
  3. 10.2 非常稳定,每个版本都在变得更好

这仍然出现在 Google 搜索中,因此再次针对柏林 10.1 进行了更新:

  1. 32 位和 64 位代码现在在 Windows 上使用 CLANG/LLVM
  2. OS X 的 32 位代码仍然使用旧的编译器
  3. Android 和 iOS 编译使用 CLANG/LLVM

关于C++ 生成器或 Visual Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234434/

相关文章:

c++ - std::shared_ptr 模板因 C2440 而失败

C++ 简单指针错误无法弄清楚为什么?

visual-studio - 是否有类似 GhostDoc 的 CodeRush 或 ReSharper 插件?

visual-studio - 使用 Visual Studio 2017 的 Azure 数据工厂项目

c++ - 添加了库; Borland C++ Builder 无故暂停

C++ 唯一字符检查

c++ - Pthreads 类似信号的暂停?

visual-studio - Visual Studio卡住/TFS窗口可能不在屏幕上

c++ builder, label.caption, std::string 到 unicode 转换

c++ - IO 完成端口和套接字 send()