在 java 中转换 MFC 桌面应用程序 GUI

Posted

技术标签:

【中文标题】在 java 中转换 MFC 桌面应用程序 GUI【英文标题】:converting MFC desktop application GUI in java 【发布时间】:2012-03-16 05:29:19 【问题描述】:

我有一个基于 MFC 的桌面应用程序。应用程序是完全用 MFC 编写的,因此它不是跨平台兼容的,因此我需要使其交叉兼容。我想将GUI部分转换为java(swing)以实现交叉兼容性,并通过分离和包装纯cpp逻辑并通过JNI/JNA访问它来制作dll或.so文件,所以任何人都可以帮助我如何在MFC中分离gui部分和逻辑基于应用程序,以便我可以在 java 中制作 GUI?我对 MFC 没有更深的了解。

【问题讨论】:

【参考方案1】:

基于 MFC 的应用程序不一定在 GUI 和程序逻辑之间有清晰的分离。 MFC 将调用安排到 C++ 类上的函数中,这些类不仅可以包含 GUI 处理,还可以包含所有应用程序逻辑。人们并不总是用水晶球来编写 MFC 应用程序,告诉他们有人会想要 Java 中的 GUI 部分而保留其余部分。

抱歉,您的问题并不是您可以在此类论坛中得到具体解决的问题,这将解决您面临的挑战。您必须从内到外研究 MFC 应用程序,将其拆开并尽力而为。这可能需要相当多的努力,并且最终可能会被彻底重写(逻辑也以 Java 结束)。

当你有一些具体的东西时,堆栈溢出效果最好,比如一段失败或需要转换为做其他事情的示例代码等。

【讨论】:

感谢您的回复我知道我发布这个问题可能需要相当多的努力才能了解是否有任何 mfc 程序员可以为启动(第一步)转换提供一些想法跨度> 第一步:真正熟悉 MFC 应用程序。以用户身份探索每个功能;阅读所有可用的文档,研究源代码。在 Visual Studio 中构建它,单步执行函数等。如果应用程序日志没有与 GUI 分离,那么首先将其实际工作到 MFC 版本中可能不是一个好主意。即将 MFC 程序转换为仍然可以工作的程序(就执行它的任何测试用例而言),但具有更好的分离。然后程序可以更轻松地“分拆”应用程序逻辑。

以上是关于在 java 中转换 MFC 桌面应用程序 GUI的主要内容,如果未能解决你的问题,请参考以下文章

使用 java 框架实现 GUI 桌面应用程序的自动化 [关闭]

MFC:修复 GUI 上的控制台

MFC:从 GUI 中删除元素

如何在 C++ 中向 MFC 项目添加另一个 gui

Atitit 桌面软件跨平台gui解决方案 javafx webview

MFC:从另一个线程访问 GUI?