java - 在 C++ 和 Java 之间共享定义或枚举

标签 java c++

开始深入研究java,来自c++。我正在从 c++ (qt/Android) 调用 java 中的一些函数。我想念一种方法来预定义一些可在两种语言之间共享的标签,从而避免必须定义它们两次或使用字符串。

有点像

define OPERATION_START 0X01

在 c 中可以在 java 中编译/读取。

是否存在这样的事情,或者您知道实现它的一些技巧吗?

编辑:像这样的东西怎么样:

一个java文件stuff.java

public enum Stuff{ Table, Apple, Beach, Eye };

在 Cpp+ 中

'#define public

'#include "stuff.java"

'#undef public

那行得通吗? java 会像 c 一样从 0 开始枚举,对吗?

最佳答案

您需要能够读取其中一个定义并导出另一个定义的东西。 有很多事情可以做到这一点。 我知道的两个是: SWIGprotocol buffers . SWIG 将读取 C++ 声明并使用其他语言生成具有相同内容的代码。 Protocol buffers 将读取一些专有声明并为您需要的所有语言生成代码。

可能还有其他的,我不知道有什么比这些更轻的了。顺便说一句,这些也适用于定义您想要在 C++ 和 Java(以及其他语言)之间传递的更复杂的结构。

关于java - 在 C++ 和 Java 之间共享定义或枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184313/

相关文章:

c++ - QT中如何在消息框中显示图标?

java - 为什么我变富了:datatable are not available in my home?

java - 让等待线程跳过剩余的等待/继续

c++ - 我怎样才能告诉程序停止使用 freopen

c++ - 定义双感叹号?

c++ - 函数指针在C和C++中都立即返回吗?

c++ - 你如何在 C++ 中实现阶乘函数?

java - 导航生态模型

java - File.delete() 不是实际的

java - AutomaticPlaceholderConstraint 占位符无法满足契约