繁体   English   中英

如何从C ++ Builder移植?

[英]How to port from C++ Builder?

我有一个用C ++ Builder编写的大型程序,很大程度上依赖于VCL图形库。 由于许多原因,我想放弃此工具。 有两个可供选择的编译器可供使用,我对其中任何一个都开放。

我想知道的是,如何逐步进行实际的移植? 有没有人做到这一点并可以分享他们的经验?

我想第一步是将GUI / VCL与应用程序分开。 该程序本来应该是这样设计的,但遗憾的是事实并非如此。 仅此一项是一个重大项目,但是那之后我应该去哪里呢? 我是否应该在.dll文件中链接VCL GUI,将它们包括在新的编译器中,但是如果需要,可以从Builder对其进行维护?

我同意您应该将表示层与业务逻辑分开。

如果您正在寻找VCL的替代GUI框架,则可以考虑Qt 它还带有一个具有UI设计器的IDE(因此与C ++ Builder相当),但具有跨平台和开源的优点。

我曾经在MFC遇到过同样的情况。 我的建议是从头开始,并重用旧代码中的所有内容,并且这次不要使逻辑混乱! ;)

正如您所说的那样,我首先将表示层与业务逻辑分开。 首先在熟悉的C ++ Builder环境中执行此操作:从应用程序中删除业务逻辑,并将其重新创建为一个或多个单独的模块(在Windows上为DLL),并更改表示层,以便程序仍可运行,但可以访问这些模块以用于所有业务逻辑操作。

然后,您可以在不使用VCL的情况下重写应用程序。 您可能会坚持使用C ++并使用另一个GUI库(Qt当然是其中的一种,wxWidgets也很值得一看),或者您可能想更改表示层的语言(取决于您自己的技能和偏好)。

将业务逻辑移出演示文稿的另一个吸引人之处在于,它随后变得更加易于测试。

我建议您在开始之前先阅读一下迈克尔·费瑟斯(Michael Feathers)的书《有效地使用旧版代码》 他为这种重构提供了一种很好的方法(并且非常基于测试)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM