我们可以“轻松地”(以某种方式)将C++Builder项目编译成VisualStudio 2005 C++吗?在C++的新功能中,我正在寻找相关的参考资料(CBuilder VS)。谢谢。
发布于 2010-01-07 10:41:35
嗯,不是这样的。确实应该编译“纯”C++部件,您有两个非常大的问题需要处理:
首先,Borland对C++进行了一些专有扩展,使其与他们的Delphi产品兼容。我不记得这些是什么,但它们可能是一个问题,这取决于你正在做什么。
但主要的问题是VCL,主要的GUI库。如果你是在C++Builder中进行开发,那么99%的时间你都在使用VCL,而且使用得相当频繁。AFAIK,VCL不会在任何Microsoft编译器下编译,原因有很多,包括我已经提到的那个。
所以基本上,如果你想让它在VisualStudio下运行,你就只能移植到.NET (或者MFC,如果你是受虐狂的话)。这里的一个亮点是许多第三方组件开发人员已经接受了.NET,因此您可能不必像您想象的那样做太多的工作来移植项目。
发布于 2010-01-07 10:40:04
如果你使用VCL类,你将不能在Visual C++中编译你的代码。VCL在C++语言中引入了一些新的语言结构,使其与delphi、__property等语言兼容,即使能将VCL代码移植到一些外部的动态链接库中,调用VCL函数仍然会有很多问题。这是因为Borland __fastcall调用约定与它的大多数其他编译器实现不同。Borland版本将3个参数传递给寄存器,而大多数其他编译器使用2个参数。
总而言之,在不同的编译器实现中可能会出现很多问题,特别是在使用VCL或__fastcall调用约定时。关于图形用户界面生成器的事情是,它被构建为与C++和VCL兼容,虽然VCL是一个优秀的C++和图形用户界面程序的框架,但它增加了与其他编译器兼容性较差的成本。
发布于 2010-01-07 09:50:45
最终都是C++,所以您可以将C++Builder文件包含到VS2005解决方案中,并在中链接库。毫无疑问,VS2005更愿意看到MFC或.NET,而不是来自C++Builder的所有Turbo类。导入资源也可能是一个问题。
我对这里的其他答案也很感兴趣。我们可能需要在我们的项目中沿着同样的道路前进。
https://stackoverflow.com/questions/2017624
复制相似问题