【问题标题】:How to use two different languages for making one program? [closed]如何使用两种不同的语言制作一个程序? [关闭]
【发布时间】:2023-04-05 14:00:01
【问题描述】:

我有时听说程序的前端是用语言 A 编写的,后端是用语言 B 编写的。我也可以为我制作的桌面程序这样做吗?就像用 Java 做图形,用 C 或 C++ 做后端一样。我该怎么做?

PS。对不起,如果这是一个新手问题,因为我是一个。

编辑 1 因为有人告诉我我的问题太宽泛了,所以这就是我想要的。如何将 java 中的 mt 动作侦听器与 C 程序链接?例如,如果我有一个按钮“下一百个素数”,我希望该按钮用 Java 制作,素数使用 C 计算。

【问题讨论】:

  • 您真正要问的是两个不同的进程如何通信。开始研究它,您将不可避免地找到答案。
  • @Kon:问题不是专门要求不同的流程。这很可能在单个进程中实现(通过托管 JRE 和/或使用 JNI 调用本机代码)。
  • 我喜欢托管在 C++ 流程解决方案变体中的 JRE,@IInspectable!
  • 虽然您可以使用 JNI 混合 Java 和 C,但最好还是坚持使用使用相同技术的语言:JVM(Java、Scala、Clojure、Groovy、 ...)、CLR(C#、VB.NET、...)或机器代码(C、C++、Delphi、...)。混合技术会使事情复杂化。

标签: java c++ c


【解决方案1】:

这可以在一个 Java 进程中完成,例如,JNI。 Java 有效地将 C++ 称为库。

这也可以通过让 Java 进程创建一个 C++ 进程然后将其输出捕获为例如 C++ 进程退出代码、标准输出或创建的文件来实现多进程。

第三种方法是让一个长时间运行的 C++ 进程在 TCP 套接字上侦听,然后让 Java 程序通过网络(在同一台机器上或通过 Intranet)与其 C++ 后端通信。

当然也存在其他方法。这些只是我知道的一些。 :)

【讨论】:

  • 是的。此外,在早期,将汇编代码绑定到 C 中做了很多工作。使用 Java,您可以使用标准输入/输出/错误流控制进出捕获/启动的应用程序的数据。另一方面,你为什么要这样做?为什么不保持简单?
  • @JayC667,控制台应用程序顶部的 GUI 是一种将 GUI 添加到具有或需要控制台界面的应用程序的廉价方法。例如,git gui 可能是 Git 控制台应用程序顶部的 Tk 接口。较早的 [XBoard] 在控制台应用程序顶部有一个类似的 GUI,具有标准通信协议架构。
猜你喜欢
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 2020-11-19
  • 2020-08-23
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 2021-01-16
相关资源
最近更新 更多