我目前有一个需要与 GUI 连接的 C++ 后端,由于我以前从未构建过 GUI,所以我不知道从哪里开始。
我很喜欢用 C++ 和 Java 编写代码,所以我希望我的 GUI 使用其中一种语言。此外,GUI 必须在 Windows 和 Linux 上合理地独立于操作系统(希望如此,因此是 Mac)。
现在我明白,如果我使用 Java 来做这件事,我需要一些包装器来做——但我也听说(严格来说是二手的)用 C++ 编写 GUI 是一种痛苦。
我不想用 Java 重写太多后端代码(谁会??),我希望输入以下内容:
- 与另一种语言相比,这两种语言是否具有明显的优势/劣势?
- 包装问题有多严重,如果我使用 Java 会进行多少重写。
- 是否有任何我应该查看的、人们认为相关的特定资源?
谢谢大家 :)
最佳答案
看看Qt .
根据我的经验,在两种不同的语言运行时之间进行交流总是具有挑战性。如果您有一个非平凡的应用程序来构建以下通常会带来挑战:-
- 错误处理。
- 内存管理。
- 多线程和同步 语义。
除了由于包装器而增加了一层间接性之外,它还需要大量思考,例如需要在 GUI 和后端等之间传递数据结构的情况。
例如:- 考虑将 Java String
从 GUI 传递到后端 C++。
本质上,我们必须从 Java String
对象中提取字符,并将它们提供给 C++ 开发人员使用,而不会泄漏保存它们的内存。这是一个基本问题的示例(还有其他方面,例如要返回字符的编码)。
关于用于构建具有 C++ 后端的 GUI 的 Java 与 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207155/