如何将Java对象转换为C++对象?

2024-01-07

我的问题是这样的。我已经序列化了存储在文件中的二进制 Java 对象。我需要用 C++ 重建对象并进行进一步的处理。

我想我可以使用Java反序列化Java对象,再次序列化为acsii文件,然后加载C++代码。另外,我知道可以使用 JNI 从 C++ 调用 Java 函数,但我不知道如何传递参数,即将对象返回给 C++。但还有更好的办法吗?

Thanks!


如果你足够勇敢,你可以看看 Java 序列化规格 http://download.oracle.com/javase/6/docs/platform/serialization/spec/protocol.html并为 Java 序列化数据编写一个 C++ 解析器。

JNI 路线有效,但最终得到的是 Java 对象,而不是 C++ 对象。因此,您的 C++ 代码基本上必须对 VM 进行大量调用才能操作该数据(尽管您可以仅获取对象的字段并将它们复制到 C++ 对象中)。

如果用 C++ 编写 Java 解组器听起来很麻烦,您可以按照自己的建议编写一个 Java 程序,将数据写入可以轻松从 C++ 解析的格式。但现在您正在编写一个封送拆收器(用 Java 编写),如果没有的话,还要编写一个解封送拆收器(用 C++ 编写),所以也许只解析 Java 序列化格式会更容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将Java对象转换为C++对象? 的相关文章

随机推荐