如何将Java对象转换为C++;对象
我的问题是这样的。我序列化了存储在文件中的二进制Java对象。我需要重构C++中的对象并进行进一步的处理。如何将Java对象转换为C++;对象,java,c++,serialization,Java,C++,Serialization,我的问题是这样的。我序列化了存储在文件中的二进制Java对象。我需要重构C++中的对象并进行进一步的处理。 我想我可以用java反序列化java对象,再序列化到ACSII文件中,然后加载C++代码。而且,我知道使用JNI调用C++函数可以实现java,但是我不知道如何传递参数,也就是说,将对象返回到C++。但是有更好的办法吗 谢谢 当一个对象被序列化到一个流时,它会丢失关于源语言的信息,实际上成为一个独立于语言的数据块。所以你的问题不是从java转换成C++,而是把二进制的数据块转换成C++中的
我想我可以用java反序列化java对象,再序列化到ACSII文件中,然后加载C++代码。而且,我知道使用JNI调用C++函数可以实现java,但是我不知道如何传递参数,也就是说,将对象返回到C++。但是有更好的办法吗
谢谢 当一个对象被序列化到一个流时,它会丢失关于源语言的信息,实际上成为一个独立于语言的数据块。所以你的问题不是从java转换成C++,而是把二进制的数据块转换成C++中的对象表示。当然blob是用Java序列化的,但这与反序列化过程无关。现在,你需要做的是找出数据的格式,因为它是序列化的,并用C++编写代码来反序列化它。如果你幸运的话,序列化可能是使用XML序列化完成的,在这种情况下,使用C++端上的XML库来反序列化是微不足道的。
尽管我不知道有什么方法来完成你所说的。如果我处在您的位置,我会将每个对象的描述写入一个文本/二进制文件。然后,用C++读取描述并填空。
也许你可以用java编写一个程序来读取(反序列化)这些对象,然后使用OntBuFF将它们序列化。http://code.google.com/p/protobuf/对某些文件,可以将其反序列化为C++对象。如果你觉得足够勇敢,您可以查看java序列化,并为java序列化数据编写C++解析器。
<>如果在C++中编写java unMalSalver听起来很麻烦,你可以按照自己的建议编写一个java程序,将数据写入一个可以很容易地从C++中解析的格式。但是现在您正在编写封送器(Java)和解封器(C++),如果您没有封送器,那么解析Java序列化格式可能会更容易。