![](/img/trans.png)
[英]ActiveX code from Visual C++ port to Borland C++ Builder
[英]How to port from C++ Builder?
我有一个用C ++ Builder编写的大型程序,很大程度上依赖于VCL图形库。 由于许多原因,我想放弃此工具。 有两个可供选择的编译器可供使用,我对其中任何一个都开放。
我想知道的是,如何逐步进行实际的移植? 有没有人做到这一点并可以分享他们的经验?
我想第一步是将GUI / VCL与应用程序分开。 该程序本来应该是这样设计的,但遗憾的是事实并非如此。 仅此一项是一个重大项目,但是那之后我应该去哪里呢? 我是否应该在.dll文件中链接VCL GUI,将它们包括在新的编译器中,但是如果需要,可以从Builder对其进行维护?
我曾经在MFC
遇到过同样的情况。 我的建议是从头开始,并重用旧代码中的所有内容,并且这次不要使逻辑混乱! ;)
正如您所说的那样,我首先将表示层与业务逻辑分开。 首先在熟悉的C ++ Builder环境中执行此操作:从应用程序中删除业务逻辑,并将其重新创建为一个或多个单独的模块(在Windows上为DLL),并更改表示层,以便程序仍可运行,但可以访问这些模块以用于所有业务逻辑操作。
然后,您可以在不使用VCL的情况下重写应用程序。 您可能会坚持使用C ++并使用另一个GUI库(Qt当然是其中的一种,wxWidgets也很值得一看),或者您可能想更改表示层的语言(取决于您自己的技能和偏好)。
将业务逻辑移出演示文稿的另一个吸引人之处在于,它随后变得更加易于测试。
我建议您在开始之前先阅读一下迈克尔·费瑟斯(Michael Feathers)的书《有效地使用旧版代码》 。 他为这种重构提供了一种很好的方法(并且非常基于测试)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.