开始深入研究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 开始枚举,对吗?
最佳答案
您需要能够读取其中一个定义并导出另一个定义的东西。 有很多事情可以做到这一点。 我知道的两个是: SWIG和 protocol buffers . SWIG 将读取 C++ 声明并使用其他语言生成具有相同内容的代码。 Protocol buffers 将读取一些专有声明并为您需要的所有语言生成代码。
可能还有其他的,我不知道有什么比这些更轻的了。顺便说一句,这些也适用于定义您想要在 C++ 和 Java(以及其他语言)之间传递的更复杂的结构。
关于java - 在 C++ 和 Java 之间共享定义或枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184313/