Delphi C ++ Builder到VisualStudio

时间:2010-01-07 01:31:59

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

我们可以“轻松”(以某种方式)将C ++ Builder项目编译成VisualStudio 2005 C ++。 C ++中的新功能我正在寻找这方面的参考文献(CBuilder vs VS)。谢谢。

3 个答案:

答案 0 :(得分:4)

如果使用VCL类,则无法在Visual C ++中编译代码。 VCL为C ++语言引入了一些新的语言结构,使其与delphi,__property等兼容。即使你可以将VCL代码移动到某个外部动态链接库,仍然会有很多问题需要调用VCL功能。这是因为Borland __fastcall调用约定与大多数其他编译器实现不同。 Borland版本将3个参数传递给寄存器,而大多数其他编译器使用2个。

总而言之,不同的编译器实现会出现很多问题,特别是如果您使用VCL或__fastcall调用约定。关于C ++ Builder的问题在于它与Delphi和VCL兼容,虽然VCL是RAD和GUI程序的优秀框架,但它增加了与其他编译器兼容性较低的成本。

答案 1 :(得分:4)

嗯,不是真的。确实,“纯粹的”C ++部分应该编译,你有两个非常大的问题需要处理:

首先,Borland对C ++进行了一些专有扩展,使其与Delphi产品兼容。我不记得这些是什么,但它们可能是一个问题,取决于你正在做什么。

但主要问题是VCL,即主GUI库。如果您正在使用C ++ Builder进行开发,那么99%的时间您正在使用VCL,并且使用它的时间非常多。 AFAIK,VCL不会在任何Microsoft编译器下编译,原因很多,包括我已经提到的那个。

所以基本上,如果你想让它在VisualStudio下运行,那么你就不会移植到.NET(或MFC或其他任何你是受虐狂的人)。这里的一个亮点是许多第三方组件开发人员已经接受了.NET,因此您可能不需要像想象的那样完成移植项目所需的工作。

答案 2 :(得分:0)

嗯,它最终都是C ++,所以你可以将你的C ++ Builder文件包含到VS2005解决方案中并链接库。对于C +中的所有Turbo类,VS2005更愿意看MFC或.NET毫无疑问,+ Builder。导入资源也可能是一个问题。

我也对这里的其他答案感兴趣。我们可能需要在我们的项目中沿着同样的道路前进。