Embarcadero C++ Builder 作为 IDE 是一个不错的选择吗?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7230518/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Is Embarcadero C++ Builder a good choice as an IDE?
提问by user336635
As we are (me and people I work with) more and more frustrated while working with C++ projects 250 000+ LOC in VS2010 sp1 (the slowness of this IDE is just unbelievable), in my company we were talking about migrating our code to some different IDE. We did some research, and a strong candidate seems to be Embarcadero C++ builder 2011 XE. Any thoughts on it? Is it any good? How does it compares to VS2010 ultimate?
由于我们(我和与我一起工作的人)在 VS2010 sp1 中处理 250 000+ LOC 的 C++ 项目时越来越感到沮丧(这个 IDE 的缓慢令人难以置信),在我的公司中,我们正在谈论将我们的代码迁移到某些不同的IDE。我们做了一些研究,一个强有力的候选者似乎是 Embarcadero C++ builder 2011 XE。对此有何想法?有什么好处吗?它与VS2010 Ultimate相比如何?
回答by Eric
I've been using C++ Builder since 1.0 and I hate it with a passion. You would think after all these years, simple little annoyances would be fixed by now but they are not. Here is a list of issues I have with C++ Builder IDE.
我从 1.0 开始就一直在使用 C++ Builder,我非常讨厌它。你会认为经过这么多年,简单的小烦恼现在会得到解决,但事实并非如此。这是我在 C++ Builder IDE 中遇到的问题列表。
Your layout or personality never is maintained. You create one, save it and it only applies to certain things. For example the debugger window will not maintain its position nor will the message window. If you detach the project explorer it will sometimes dissappear. Most of the time reloading your personality doesn't fix this either. You are stuck dragging your windows back into place.
The debugger will sometimes work and sometimes not work. In a debug build if you set a break point and begin stepping through code, you can hover over a variable to inspect it. Sometimes this works and sometimes it doesn't work on the exact same variable. Crazy!
Eclipse looks for code mistakes like if you forget to put a semi-colon at the end of your statement, it puts a little ? mark in the margin. C++ Builder doesn't do anything like this. It gives you a cryptic compile time error message.
Recent versions of C++ Builder use a makefile similar to VS; it's an XML mess. Eclipse works with CMake and Makefiles. I've read in places that the CMake maintainers are looking for a C++Builder generator but last I checked this doesn't exist. I do embedded and cross compiling so sometimes my C++ Builder code is copied to my embedded development environment or shared with it and I wind up maintaining two build environments.
Not really an IDE but C++Builder does not take advantage of multiple CPUs to compile code. There is, however, a 3rd party tool you can spend more money on to get this. It's called TwineCompile (http://www.jomitech.com/twine.php). With Eclipse, they call out to whatever compiler you're using (gcc, etc...) and those compilers and make support -j option.
C++Builder comes with a limited version of AQTime which is a dynamic code profiler. Spend more and you get the more advanced version. Eclipse supports many dynamic and static code analysis (which also cost $$) but at least the plugins are there. We use Klockworx.
C++ Builder has no support, that I'm aware of, for external source control like GIT. Eclipse does. C++ Builder comes with subversion, I think, built-in. If it supports GIT, I could never get it to work. It tells me it doesn't understand the URL scheme when I give it a git path.
Certain template code I write causes the compiler to segfault and have to completely restart the IDE. This is nuts to me. You have a compiler that is 10+ years old and it's still segfaulting. I have a piece of C++ template code that when I take it to my work computer running exact same version of C++ Builder, it compiles OK, but on my home machine it segfaults. I'm absolutely sure there are no adverse factors at play like viruses, etc...
While compiling a large project that may take a long time, you are unable to browse code with the IDE. Sometimes you may see a compiler warning scroll by and you have to either wait for the compile job to complete to inspect the mentioned line or use an alternate means to open the file.
C++ Builder IDE has a concept of a Project Group with sub projects that are more/less self contained. The Project Group has no concept of a project group include/link path like the sub-projects have. Sub-projects have a base, debug, release paths where debug and release can inherit or block from the base but you don't have this at the project group level. The IDE has global settings which can be inherited but it's for everything you do in the IDE. So there is no way to modify for a given project group, just the include/linker paths for a set of sub-projects. I just think they could have done a better job with this.
C++ Builder's Build output is not color coded to, for example, show errors in red and warnings in some other color. Everything is black and white. VC and Eclipse color code and give option to change colors for various warnings and errors. The output tab in C++ Builder is same way. On big projects, it's very difficult to investigate compiler warnings with the other noise. In C++ Builder's IDE you can select level of warnings but this only affects output in the Output tab and you still get other stupid noise like letting me know its deleting linker state files "CleanLinkerStateFiles."
您的布局或个性永远不会得到维护。你创建一个,保存它,它只适用于某些事情。例如,调试器窗口不会保持其位置,消息窗口也不会。如果您分离项目浏览器,它有时会消失。大多数时候重新加载你的个性也不能解决这个问题。您被困在将窗口拖回原位。
调试器有时会工作,有时不工作。在调试版本中,如果您设置断点并开始单步执行代码,您可以将鼠标悬停在变量上以进行检查。有时这有效,有时它不适用于完全相同的变量。疯狂的!
Eclipse 会查找代码错误,例如如果您忘记在语句末尾放置分号,它会添加一点 ? 在边缘标记。C++ Builder 不会做这样的事情。它为您提供了一个神秘的编译时错误消息。
最新版本的 C++ Builder 使用类似于 VS 的 makefile;这是一个 XML 混乱。Eclipse 使用 CMake 和 Makefiles。我在某些地方读到 CMake 维护者正在寻找 C++Builder 生成器,但最后我检查了它不存在。我进行嵌入式和交叉编译,所以有时我的 C++ Builder 代码被复制到我的嵌入式开发环境或与它共享,我最终维护了两个构建环境。
不是真正的 IDE,但 C++Builder 没有利用多个 CPU 来编译代码。但是,您可以花更多的钱来获得第 3 方工具。它被称为 TwineCompile ( http://www.jomitech.com/twine.php)。使用 Eclipse,它们会调用您正在使用的任何编译器(gcc 等)和那些编译器并 make support -j 选项。
C++Builder 附带一个有限版本的 AQTime,它是一个动态代码分析器。花费更多,您将获得更高级的版本。Eclipse 支持许多动态和静态代码分析(也需要花费 $$),但至少有插件。我们使用 Klockworx。
据我所知,C++ Builder 不支持像 GIT 这样的外部源代码控制。Eclipse 可以。我认为,C++ Builder 带有内置的颠覆。如果它支持 GIT,我永远无法让它工作。当我给它一个 git 路径时,它告诉我它不理解 URL 方案。
我编写的某些模板代码会导致编译器出现段错误,并且必须完全重新启动 IDE。这对我来说太疯狂了。你有一个 10 多年的编译器,它仍然存在段错误。我有一段 C++ 模板代码,当我将它带到运行完全相同版本的 C++ Builder 的工作计算机时,它编译正常,但在我的家用机器上它出现段错误。我绝对确定没有不利因素在起作用,例如病毒等...
在编译可能需要很长时间的大型项目时,您无法使用 IDE 浏览代码。有时您可能会看到编译器警告滚动,您必须等待编译作业完成以检查提到的行或使用替代方法打开文件。
C++ Builder IDE 有一个项目组的概念,其中包含更多/更少自包含的子项目。项目组没有像子项目那样的项目组包含/链接路径的概念。子项目具有基础、调试、发布路径,其中调试和发布可以从基础继承或阻止,但您在项目组级别没有此路径。IDE 具有可以继承的全局设置,但它适用于您在 IDE 中所做的一切。所以没有办法修改给定的项目组,只能修改一组子项目的包含/链接器路径。我只是认为他们本可以做得更好。
C++ Builder 的构建输出没有颜色编码,例如,以红色显示错误,以其他颜色显示警告。一切都是黑白的。VC 和 Eclipse 颜色代码,并提供更改各种警告和错误颜色的选项。C++ Builder 中的输出选项卡也是如此。在大型项目中,很难用其他噪音来调查编译器警告。在 C++ Builder 的 IDE 中,您可以选择警告级别,但这只会影响“输出”选项卡中的输出,并且您仍然会收到其他愚蠢的噪音,例如让我知道它正在删除链接器状态文件“CleanLinkerStateFiles”。
Unless you're doing Windows desktop GUI development, stay away from Embarcadero/C++ Builder. I started using C++ Builder version 1 back in the Borland days and have a few large projects that are heavily invested in the VCL so I'm stuck with it for those projects but all my new projects, I've been using Eclipse.
除非您在进行 Windows 桌面 GUI 开发,否则请远离 Embarcadero/C++ Builder。我在 Borland 时代就开始使用 C++ Builder 版本 1,并且有一些大型项目在 VCL 上投入了大量资金,所以我一直坚持使用它来处理这些项目,但我所有的新项目都一直在使用 Eclipse。
On a positive note about C++ Builder, the VCL is quite nice. It's not multi-threaded but it's nice for creating a desktop GUI app really quick. I think it's much faster to get a C++ based GUI app up in CBuilder than it is in VS. And there appears to be a ton of free and paid GUI components for CBuilder; again with a C++ focus. I know C# + VS has a wealth of GUI controls.
在 C++ Builder 的积极方面,VCL 非常好。它不是多线程的,但非常适合快速创建桌面 GUI 应用程序。我认为在 CBuilder 中获得基于 C++ 的 GUI 应用程序比在 VS 中快得多。CBuilder 似乎有大量免费和付费的 GUI 组件;再次以 C++ 为重点。我知道 C# + VS 有丰富的 GUI 控件。
UPDATE:I just ran into a problem today that is same as the one mentioned in this forum: http://qc.embarcadero.com/wc/qcmain.aspx?d=57631
更新:我今天刚遇到一个与本论坛中提到的问题相同的问题:http: //qc.embarcadero.com/wc/qcmain.aspx?d=57631
[ILINK32 Warning] Warning: Error detected (ILI4536)
[ILINK32 警告] 警告:检测到错误 (ILI4536)
Make up your mind. Is it a warning or a god dam error?
下定决心。这是警告还是上帝的错误?
Scroll all the way to the end where you find individuals modifying ILINK32.EXE to get it working again. As of this morning, our builds stop working. We're dead in the water as we scramble to understand and find out what to do about this.
一直滚动到最后,您会发现有人修改了 ILINK32.EXE 以使其再次运行。截至今天早上,我们的构建停止工作。当我们争先恐后地了解并找出对此做些什么时,我们已经死在水中。
Is this the kind of compiler/IDE you want to depend on? Again, this product has been around for more than a decade and it still has issues like this. I find this completely unacceptable. Crap product from a company that doesn't give a shit.
这是您想要依赖的那种编译器/IDE吗?同样,这个产品已经存在十多年了,它仍然存在这样的问题。我觉得这是完全不能接受的。来自一家毫不在乎的公司的垃圾产品。
回答by unkulunkulu
Not actually an answer, but I'll just leave it here:
实际上不是答案,但我将其留在这里:
- It costs money (yes, VS too, but you already own that, don't you?)
- It will be not too easy to migrate a big enough project to new IDE (and compiler), not to say about the people you work with and their habits (I would just quit probably).
- There's a new compiler too, with its brand bugs and caveats to learn about. And it's much less widely used than VC++. However, it's based on Clang, which should support standards better than VC++, and be easier to port existing C++ code to.
- The difficulty of migrating hugely depends on the nature of your project (is it GUI based, how deeply does it rely on MS VC++ being the compiler?)
- 它需要花钱(是的,VS 也是如此,但您已经拥有它了,不是吗?)
- 将一个足够大的项目迁移到新的 IDE(和编译器)不会太容易,更不用说与您一起工作的人及其习惯(我可能会退出)。
- 还有一个新的编译器,它的品牌错误和警告需要了解。而且它的使用比 VC++ 少得多。但是,它基于 Clang,应该比 VC++ 更好地支持标准,并且更容易移植现有的 C++ 代码。
- 迁移的难度在很大程度上取决于您的项目的性质(它是否基于 GUI,它在多大程度上依赖 MS VC++ 作为编译器?)
回答by MaximeG
There is nothing positive about Embarcadero XE, neither their aging IDE neither their aging compiler. Only use it if you're bound to it (legacy software) or if you want to do Delphi.
Embarcadero XE 没有任何积极的地方,无论是他们老化的 IDE 还是他们老化的编译器。仅当您绑定到它(遗留软件)或想要使用 Delphi 时才使用它。
For C++, do yourself a favor and join 21st century : stick with something more powerful, versatile and modern such as VC++ or Qt.
对于 C++,帮自己一个忙,加入 21 世纪:坚持使用更强大、更通用和更现代的东西,例如 VC++ 或 Qt。
回答by Remy Lebeau
This question is really a matter of personal opinion.
这个问题真的是个人意见问题。
I personally HATE Visual Studio with a passion, I avoid it like the plague. My exposure to Eclipse has been limited to Java, but even then I've had a hard time working with it.
我个人非常讨厌 Visual Studio,我像躲避瘟疫一样避开它。我对 Eclipse 的接触仅限于 Java,但即便如此,我也很难使用它。
I have been using C++Builder for 15 years, since v3.0 all the way up to the latest XE6. Yes, it has quirks and limitations, but I still find it the easiest IDE for me to work with and be productive with, once you know how to work with (or around) them. Maybe my experience with it is hindering my ability to work with other IDEs, but so be it. I still prefer C++Builder over any other. But I only use it for Windows development (the VCL is very mature and robust), I don't do cross-platform development with it yet (FireMonkey still has a ways to go to evolve and mature). And I do use plenty of open-source projects with it. Yes, sometimes I have to tweak their projects and/or code to make them compile, but that it usually a one-time deal and then they work fine.
我已经使用 C++Builder 15 年了,从 v3.0 一直到最新的 XE6。是的,它有一些怪癖和局限性,但我仍然发现它是我最容易使用并提高工作效率的 IDE,一旦你知道如何使用(或使用它们)。也许我的经验阻碍了我使用其他 IDE 的能力,但就这样吧。我仍然更喜欢 C++Builder。但是我只将它用于 Windows 开发(VCL 非常成熟和健壮),我还没有用它进行跨平台开发(FireMonkey 还有很长的路要走才能发展和成熟)。我确实使用了大量的开源项目。是的,有时我必须调整他们的项目和/或代码才能使它们编译,但这通常是一次性交易,然后它们就可以正常工作了。
回答by viraj
I'd suggest Eclipse.
我建议Eclipse。
- As an IDE, it takes a little while to get used too, but it is well worth the effort.
- It's available for Mac OS, Linux and Windows.
- You need to have Java installed on your computer, but that's really a non - issue.
- It supports Cygwin, MinGW, and the MicrosoftVisual C++ toolchains. The build in CDT Builder is pretty good too.
- You can use it to develop for languages other than C++ (Java , JavaScript, PHP ..)
- You can extend it's functionality by installing plugins
- IT'S FREE!
- 作为 IDE,使用起来也需要一段时间,但值得付出努力。
- 它适用于 Mac OS、Linux 和 Windows。
- 您需要在计算机上安装 Java,但这确实不是问题。
- 它支持 Cygwin、MinGW 和 MicrosoftVisual C++ 工具链。CDT Builder 中的构建也非常好。
- 您可以使用它来开发 C++ 以外的语言(Java、JavaScript、PHP ..)
- 您可以通过安装插件来扩展它的功能
- 免费!
- Did I mention that it has a built in Web Browser ? Really useful for referring to online documentation, while coding.
- 我有没有提到它有一个内置的 Web 浏览器?在编码时参考在线文档非常有用。
回答by Vyacheslav Lanovets
1. We have a solution over 1M LOC and VS2010 handles it ok. We especially like /MP switch for compiling on all available CPU cores.
1.我们有一个超过1M LOC的解决方案,VS2010可以处理。我们特别喜欢在所有可用的 CPU 内核上编译的 /MP 开关。
You did not specify your hardware. If you don't yet run on at least i7-2600 + fast SSD, I suggest trying hardware upgrade first.
您没有指定您的硬件。如果您还没有在至少 i7-2600 + 快速 SSD 上运行,我建议您先尝试硬件升级。
2. I used to use Borland tools a lot in the past. Delphi was rather stable; C++ Builder was much more buggy. Couple of years ago I helped to upgrade old Delphi projects to newer Delphi IDE with some service packs installed. And it had bugs even in the basic File IO APIs which have worked since Turbo Pascal. We had to downgrade to a previous version. I expect that quality of C++ Builder won't be much better than of VS2010.
2.我过去经常使用Borland工具。Delphi 相当稳定;C++ Builder 的问题要多得多。几年前,我帮助将旧的 Delphi 项目升级到安装了一些服务包的较新的 Delphi IDE。它甚至在自 Turbo Pascal 以来一直有效的基本文件 IO API 中也存在错误。我们不得不降级到以前的版本。我希望 C++ Builder 的质量不会比 VS2010 好多少。
3. You did not specify what exactly is slow. You may want to convert some projects into components compiled separately. Also make sure you use PCH.
3. 你没有具体说明什么是慢。您可能希望将某些项目转换为单独编译的组件。还要确保您使用 PCH。
Also it worth investigating if you abuse C++ inclusion model by including a lot of unneeded header files in each and every unit. If, after preprocessing, Intellisense and compiler have to deal with huge amount of code, no IDE can help.
此外,如果您通过在每个单元中包含大量不需要的头文件来滥用 C++ 包含模型,也值得调查。如果在预处理之后,Intellisense 和编译器必须处理大量代码,则没有 IDE 可以提供帮助。
回答by CPlusPlus OOA and D
I have not used Visual Studio 2010 Ultimate for C++, rather C# and C# web services development. That being said, as a test between VS 2010 Ultimate and C++Builder XE, I have created a simple VS C++ Windows Forms application to click a button and show "Hello World" through an event handler. Getting the button onto the VS Window Designer is okay, as long as you remember to access View | Toolbox. If not, it will take some time to track down where the visual components are hanging out.
我没有使用 Visual Studio 2010 Ultimate for C++,而是使用 C# 和 C# Web 服务开发。话虽如此,作为 VS 2010 Ultimate 和 C++Builder XE 之间的测试,我创建了一个简单的 VS C++ Windows 窗体应用程序来单击按钮并通过事件处理程序显示“Hello World”。把按钮放到 VS Window Designer 上是没问题的,只要你记得访问 View | 工具箱。如果没有,则需要一些时间来追踪可视化组件挂在哪里。
For reasons that do not make any language sense, the button click event handler has a signature that looks like:
由于没有任何语言意义的原因,按钮单击事件处理程序具有如下所示的签名:
System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
and it goes to the header file as one would expect. The ^
symbol makes little sense. Does using it tie into the CLI/CLR better? I expected a *
to indicate a pointer.
正如人们所期望的那样,它会转到头文件。这个^
符号意义不大。使用它是否更好地与 CLI/CLR 相关联?我希望 a*
表示一个指针。
After using the default Form1 (only header file created) and subsequently adding a new windows form, I finally obtained the respective cpp file. Maybe the C++ Windows Form Wizard has a bug. Who knows? Anyhow, when adding the button click event by double clicking the button in the designer, the cpp does not obtain the method in either cpp form I tested. Maybe this is normal, I do not know. The end result of this is that after trying to use the MessageBox function within the cpp, it only caused compilation errors. I am sure there is yet another header file that has to be in the include path. I spent no time tracking this down. Trying to set a label component text property caused compilation errors too. About 20 minutes later, I went to C++Builder XE3 in frustration.
在使用默认的Form1(只创建了头文件)并随后添加了一个新的windows窗体后,我终于获得了相应的cpp文件。也许 C++ Windows 窗体向导有一个错误。谁知道?无论如何,通过双击设计器中的按钮添加按钮单击事件时,cpp在我测试的任何一种cpp形式中都没有获取该方法。也许这是正常的,我不知道。这样做的最终结果是,在尝试使用 cpp 中的 MessageBox 函数后,它只会导致编译错误。我确信还有另一个头文件必须在包含路径中。我没有花时间跟踪这个。尝试设置标签组件文本属性也会导致编译错误。大约 20 分钟后,我沮丧地去了 C++Builder XE3。
In C++Builder, I have tested VCL Forms, FireMonkey Desktop, and FireMonkey Metropolis application creation from the project wizard. Sure enough, I have three different applications saying, "Hello World," in about three minutes total, all calling C++Builder's built in global shortcut function called ShowMessage("insert message here")
. The timing could have been slightly different as I did not time it with a stop watch. It took longer to save files with meaningful names than the code itself: one line of typing in the respective click event body in each cpp (not the header).
在 C++Builder 中,我通过项目向导测试了 VCL Forms、FireMonkey Desktop 和 FireMonkey Metropolis 应用程序创建。果然,我有三个不同的应用程序在总共大约三分钟内说“Hello World”,它们都调用了 C++Builder 的内置全局快捷方式函数ShowMessage("insert message here")
. 时间可能略有不同,因为我没有用秒表计时。使用有意义的名称保存文件比代码本身花费的时间更长:在每个 cpp(不是标题)中的相应单击事件正文中键入一行。
The other main daily use gotcha with VS, for those of us who love the Brief key map, is that VS is highly challenging to configure into Brief. When doing heavy development in C#, I use C++Builder's editor in Brief mode, saving files as often as I want. VS does correctly detect file updates as you click back to the VS IDE.
对于我们这些喜欢 Brief 键映射的人来说,VS 的另一个主要日常使用问题是,将 VS 配置为 Brief 非常具有挑战性。在 C# 中进行大量开发时,我在 Brief 模式下使用 C++Builder 的编辑器,随时保存文件。当您单击返回 VS IDE 时,VS 会正确检测文件更新。
On the slowness mentioned by the OP above, I suggest also looking very closely at the hardware platform relative to running Visual Studio. I have noticed that if the .Net framework is out of date, VS will be slow within the IDE. It does not seem to matter which language the project is in either. I use Visual Studio 2010 Ultimate on Parallels with Windows XP Pro, with 2 virtual cores. Generally, VS responds normally within the IDE. While using it, I am NOT thinking, "VS is soooo slow."
关于上面 OP 提到的缓慢,我建议还密切关注与运行 Visual Studio 相关的硬件平台。我注意到如果 .Net 框架过时,VS 在 IDE 中会变慢。项目使用哪种语言似乎也无关紧要。我在带有 2 个虚拟内核的 Windows XP Pro Parallels 上使用 Visual Studio 2010 Ultimate。通常,VS 在 IDE 内正常响应。在使用它时,我并不是在想,“VS 太慢了”。
Regarding migrating a quarter million lines to C++Builder from VS, I am not sure whether VS event handlers will convert by some wizard or other migration tool. The ^
symbol, if consistently used in all event handlers, may not be a big deal for a regular expression conversion that is custom written. If the project is very thin on the user interface layer and heavy in business rules and data, converting to C++Builder should be relatively easy. I would expect some new coding for the new user interface click events passing the user interaction into the other layers. For prototyping, using data aware components are likely your best bet. In normal application running, expect to have the business rules layer use the STL and built in C++Builder data structures (even the AnsiString c_str()
method) to interact with non data aware components. The performance and user experience will likely improve.
关于将 25 万行从 VS 迁移到 C++Builder,我不确定 VS 事件处理程序是否会通过某些向导或其他迁移工具进行转换。^
如果在所有事件处理程序中始终使用该符号,则对于自定义编写的正则表达式转换来说可能不是什么大问题。如果项目在用户界面层很薄,业务规则和数据很重,转换到C++Builder应该比较容易。我希望为新的用户界面点击事件提供一些新的编码,将用户交互传递到其他层。对于原型设计,使用数据感知组件可能是您最好的选择。在正常的应用程序运行中,期望业务规则层使用 STL 并内置 C++Builder 数据结构(甚至AnsiString c_str()
方法)与非数据感知组件交互。性能和用户体验可能会得到改善。
Start Edit
开始编辑
A big knock on C++Builder XE3 (note this is two releases behind the current one of five) is that the 64-bit Windows support is only for console applications. The knock is more from not being frequently broadcast on how to use the Add Platformsub-menu that appears when right clicking the mouse over the Target Platformschoice in the Project tree view. This quick method to add more platforms to a project after it may first be targeting 32-bit Windows is virtually painless. A new sub-dialog appears after clicking the sole sub-menu choice and a drop down box appears to select the new operating system and respective 32-bit or 64-bit versions. In my opinion, Embarcadero is not demonstrating often enough how simple it is to add other target platforms. So, to ease all developer's pain if this is not known in advance, I have found three web pages on the Embarcadero site. The first one has pretty pictures of creating a FireMonkey desktop application. Step 5 has the screen capture of the Target Platforms| Add Platformsub-menu choice for adding the Mac OS Xplatform. It is here titled Creating Your First FireMonkey Application for Desktop Platforms (C++): http://docwiki.embarcadero.com/RADStudio/XE2/en/Creating_Your_First_FireMonkey_Application_for_Desktop_Platforms_%28C%2B%2B%29
对 C++Builder XE3 的一个重大打击(注意这是当前五个版本之一的两个版本)是 64 位 Windows 支持仅适用于控制台应用程序。敲击更多是因为没有经常广播如何使用在目标平台上右键单击鼠标时出现的添加平台子菜单在项目树视图中选择。这种在项目可能首先针对 32 位 Windows 之后向项目添加更多平台的快速方法实际上是无痛的。单击唯一的子菜单选项后会出现一个新的子对话框,并且会出现一个下拉框以选择新的操作系统和相应的 32 位或 64 位版本。在我看来,Embarcadero 并没有经常展示添加其他目标平台是多么简单。因此,为了在事先不知道的情况下减轻所有开发人员的痛苦,我在 Embarcadero 站点上找到了三个网页。第一个有创建 FireMonkey 桌面应用程序的漂亮图片。第 5 步是目标平台的屏幕截图| 添加用于添加Mac OS X 的平台子菜单选项平台。它的标题是为桌面平台 (C++) 创建您的第一个 FireMonkey 应用程序:http: //docwiki.embarcadero.com/RADStudio/XE2/en/Creating_Your_First_FireMonkey_Application_for_Desktop_Platforms_%28C%2B%2B%29
The more terse and no picture procedure is here titled Steps in Creating Cross-Platform Applications: http://docwiki.embarcadero.com/RADStudio/XE2/en/Steps_in_Creating_Cross-Platform_Applications
更简洁且没有图片的程序在这里标题为创建跨平台应用程序的步骤:http: //docwiki.embarcadero.com/RADStudio/XE2/en/Steps_in_Creating_Cross-Platform_Applications
The Windows centric procedure and a small screen capture is here titled 64-bit Cross-Platform Application Development for Windows: http://docwiki.embarcadero.com/RADStudio/XE3/en/64-bit_Cross-Platform_Application_Development_for_Windows
以 Windows 为中心的过程和一个小屏幕截图在这里标题为 Windows 的 64 位跨平台应用程序开发:http: //docwiki.embarcadero.com/RADStudio/XE3/en/64-bit_Cross-Platform_Application_Development_for_Windows
I have found on an Embarcadero forum post that an upgrade to the Update 1 XE3 release from the original XE3 release has a Target Platform selection issue. There can be an internal path setting or two that is incorrect, and possibly having to change an original XE3 project file (.cbproj) to enable Win64. Apparently the original release project file has this set to false.
我在 Embarcadero 论坛帖子中发现,从原始 XE3 版本升级到 Update 1 XE3 版本存在目标平台选择问题。可能有一两个内部路径设置不正确,并且可能必须更改原始 XE3 项目文件 (.cbproj) 以启用 Win64。显然,原始发布项目文件将此设置为 false。
XE5 (note version five as of December 2013) is supposed to have 64-bit Windows support for both console and forms applications (e.g. VCL, FireMonkey Desktop, FireMonkey Metropolis), OS X, iOS (Android coming sometime soon). For the complete list, review the C++Builder feature matrix pdf for all of the XE5 details:
XE5(注意截至 2013 年 12 月的第 5 版)应该为控制台和表单应用程序(例如 VCL、FireMonkey Desktop、FireMonkey Metropolis)、OS X、iOS(Android 即将推出)提供 64 位 Windows 支持。有关完整列表,请查看 C++Builder 功能矩阵 pdf 以了解所有 XE5 详细信息:
http://www.embarcadero.com/products/cbuilder/cbuilder-feature-matrix.pdf
http://www.embarcadero.com/products/cbuilder/cbuilder-feature-matrix.pdf
Since the XE3 Update 1 has been shown to resolve Target Platform selection issues, when compared to the original XE3, there should not be any weird behaviors. I have also come across an Embarcadero post that states from a TeamB member that for mobile applications, the Target Platform choices are filtered such that mixing a desktop platform project with a mobile one is not allowed. So, if one wanted to try creating a desktop application and then with a mouse click force it into an iPhone, some other development tool will have to be used. C++Builder and/or Delphi will not attempt to squeeze desktop components onto a mobile device. You have to start with a mobile application project. Here is the forum link: https://forums.embarcadero.com/thread.jspa?threadID=96371
由于 XE3 Update 1 已被证明可以解决目标平台选择问题,因此与原始 XE3 相比,不应该有任何奇怪的行为。我还看到了一个来自 TeamB 成员的 Embarcadero 帖子,该帖子指出对于移动应用程序,目标平台选择被过滤,因此不允许将桌面平台项目与移动平台项目混合。因此,如果您想尝试创建桌面应用程序,然后单击鼠标将其强制插入 iPhone,则必须使用其他一些开发工具。C++Builder 和/或 Delphi 不会尝试将桌面组件压缩到移动设备上。您必须从一个移动应用程序项目开始。这是论坛链接:https: //forums.embarcadero.com/thread.jspa?threadID=96371
(End Edit)
(结束编辑)
If curious about my overall background, I have used C++Builder since version one, Visual Studio .NET (C# 1.0) and Visual Studio 2010 Ultimate. It seems like Visual Studio concentrates on C# more than any other language. There are eighteen C# projects and fifteen C++ projects when selecting File | New Project. To reach the Visual Studio C++ project area, make sure to reach it by opening the "Other Languages" sub-tree.
如果对我的整体背景感到好奇,我从第一版开始就使用 C++Builder,Visual Studio .NET (C# 1.0) 和 Visual Studio 2010 Ultimate。与其他语言相比,Visual Studio 似乎更专注于 C#。选择 File | 时有 18 个 C# 项目和 15 个 C++ 项目。新项目。要访问 Visual Studio C++ 项目区域,请确保通过打开“其他语言”子树来访问它。
In recent Internet posts between Visual Studio latest and greatest and C++Builder latest and greatest, purchase prices vary in the thousands of dollars. Even if never ever having an installation to upgrade either tool, C++Builder remains a bargain compared to Visual Studio. Please conduct thorough research before spending your hard earned cash. Hopefully both tools have 30-day trial installations to compare side by side, as your mileage may vary.
在最近的 Visual Studio 最新最好的和 C++Builder 最新和最好的 Internet 帖子中,购买价格相差数千美元。即使从来没有安装升级任何一个工具,与 Visual Studio 相比,C++Builder 仍然是便宜货。在花费您辛苦赚来的现金之前,请进行彻底的研究。希望这两种工具都有 30 天的试用安装,可以并排比较,因为您的里程可能会有所不同。