从MFC迁移到QT

4

目前我们所有的GUI组件都是用MFC编写的。我们的构建环境是:

VC 6

Windows XP

我不知道以下两点:

1) 我们是否可以在不更改构建环境的情况下用Qt替换所有MFC组件?

2) Qt是否像其他库一样能与VC6配合使用?

你的答案将帮助我开始启动,与此同时,我已经安装了Qt 4并正在尝试构建一些示例。


3
如果可移植性不是问题,那么考虑您旧编译器的另一种选择是先升级到VS2008/MFC。 - AndersK
我强烈支持Anders Karlsson的建议。VC++ 6已经过时且特立独行。你会发现,越来越少的第三方软件能够在其上运行。VC++ 2008几乎完全符合标准,因此它将更好地适应时代的变化。 - David Thornley
谢谢Anders和David,我会考虑你们的建议,并向团队提出同样的建议 :) - Satbir
4个回答

6

哎呀,关于Qt对VC6的支持,我搞混了Win9x的支持。 现在不清楚哪个版本的Qt仍然支持VC6。我猜最新的应该是Qt-4.4,参见http://doc.trolltech.com/4.4/supported-platforms.html 特别地,Qt 4.5明确标记VC6为不支持:http://doc.trolltech.com/4.5/supported-platforms.html - tanguy_k
这里的链接似乎已经失效了,而且大部分谷歌搜索结果都指向了旧版本的存档框架。https://code.qt.io/cgit/qt-solutions/qt-solutions.git/ 是我找到的最新版本。 - aquirdturtle

2
您最好不要使用VC6和Qt 4.5。(参见文档
除此之外:如果您的项目已经编译了Qt,那么您可以轻松地切换到Qt组件。Qt使用自己的组件,所以没有其他依赖关系。
然而,要设置Qt环境,您可能需要对构建系统进行一些更改,除非您不使用QObject(请考虑moc预处理器)。
*:易于开始使用Qt组件。实际迁移MFC组件到Qt组件所需的工作量是我不知道的。

2

将MFC替换为QT需要大量的工作。首先,您应该考虑是否需要这样做。其次,Qt可以与Visual Studio集成。


1

当我尝试将一个客户的MFC应用程序移植到Qt时,我学到了一些非常有用的东西。

我经常进行大量的重构,但这并不让我感到害怕。然而,我通常是逐步改变事物的。这会产生巨大的差异。

我在LGPL版本的Qt发布之后不久开始将MFC应用程序移植到Qt,但在'qtwinmigrate'的LGPL版本发布之前(请在ftp://ftp.qt.nokia.com/qt/solutions/lgpl/获取),我认为Qt将保留MFC迁移内容作为商业许可证的激励措施。

在能够编译项目之前,我必须转换很多文件。一旦基本功能正常运行,我就逐渐重新添加对话框,直到功能与原始版本匹配。这比保持现有的MFC应用程序运行并逐步替换对话框要困难得多。

所以,重点是...使用QTWINMIGRATE!

哦,对了...不要使用VC6。升级到更近期的版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接