用于构建具有 C++ 后端的 GUI 的 Java 与 C++

标签 java c++ user-interface wrapper backend

我目前有一个需要与 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/

相关文章:

java - customAuthenticationProvider 身份验证被调用两次

javascript - 如何在父 div 折叠时删除 OnClicked 类?

javascript - JS : UI countown for setTimeout function

c++ - 如何检查CPUID(EAX=14H,ECX=0)?

c++ - C++中逗号运算符的不同行为与返回?

android - 如何在 android 2.2 中隐藏 Activity GUI

java - 执行 com.android.build.gradle.internal.tasks.FinalizeBundleTask$BundleToolRunnable 时发生故障

java - 我的 Java 方法不打印任何内容 - 打印数字的所有可能子集而不重复

java - 媒体编解码器工作不顺利

c++ - int main(int argc, char **argv)