繁体   English   中英

在Linux上运行MFC程序

[英]Run MFC program on Linux

我有一个相当大的基于MFC的程序。 我的任务是让它在Linux上运行。 我已经解释过这需要将程序重写为带有STL的直接C ++(更多工作),或者重写Qt / C ++(更少的工作)。 我现在被告知我需要编写包装器以使每个MFC类在Linux中工作并使用预处理器指令仅编译Linux或Windows中所需的内容。 我解释说我们正在断开通信,而且我认为这比从头开始重写整个项目要多得多(我不需要转换为Qt)。

有什么好的论据可以帮助解释这个问题吗? 我错了吗?

如果您不想完全重写,可以尝试编译Winelib 大多数事情应该只是工作,然后因为你有源,你可以解决没有的部分。

显而易见的解决方案是在WINE上运行代码不变并且不重新编译。

一个简单(kludgy)的解决方案是在Linux系统上运行整个Windows VM,并将该应用程序部署为虚拟硬盘驱动器,但这需要Windows许可证,与将Windows系统简单地连接到Linux网络几乎没有什么不同。

如果你必须重写,那么对于MFC开发人员而言,wxWidgets可能比Qt更熟悉。

这是一篇关于将MFC应用程序移植到Linux 的文章 ,它考虑使用GTK +,Qt和wxWidgets。 它还讨论了为什么你应该考虑并在任何这些选项之前尝试WINE。 作者讨论了有关该主题的未来文章,但自2004年以来似乎没有进一步的写作。

MFC和ATL的源代码总共超过500000行代码,此代码的大部分功能实际上是由Windows API本身提供的。 一天能写多少行代码? 即使您只实现了一小部分MFC,您要求做的事情的规模也是不切实际的。

暂无
暂无

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

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