Thanks for all. I figured out. The problem with "{0 0 0 18}" really
was in Qt library, not in protobuffs.On 11 июл, 07:53, Kenton Varda <[email protected]> wrote: > On Sat, Jul 10, 2010 at 12:00 PM, [email protected] < > > [email protected]> wrote: > > the leading variant in c++ is most likely in the wrong byte order if > > you are running a x86 machine. as i said, you need to flip them. > > mike > > Mike, varint (I assume that's what you meant by "variant") is a completely > different, variable-width integer encoding. It is not affected by the > machine's byte order. > > Furthermore, Protocol Buffers handles all endianness issues internally, so > if you are using Coded{Input,Output}Stream exclusively, you can't have byte > ordering issues. > > > > > > > On Sat, Jul 10, 2010 at 8:53 PM, Maxim Leonovich <[email protected]> > > wrote: > > > I watched on both buffers: they are similar, but in C++ I can't find a > > > leading Variant32 with size, when in Java it exists. The rests of > > > buffers are identical. > > >http://pic4.ru/8337 > > >http://pic4.ru/8338 > > >http://pic4.ru/8339 > > > > On 10 июл, 19:33, Evan Jones <[email protected]> wrote: > > >> On Jul 10, 2010, at 7:47 , Maxim Leonovich wrote: > > > >> > ArrayOutputStream(buffer,msg.ByteSize() + 4,sizeof(char)); > > > >> The documentation states: > > > >> block_size is mainly useful for testing; in production you would > > >> probably never want to set it. > > > >> So you should get rid of the "sizeof(char)" part. > > > >> > cos->WriteLittleEndian32(msg.ByteSize()); //Tryed > > >> > "WriteVariant32", didn't help > > >> > msg.SerializeToCodedStream(cos); > > > >> If you want to use Java's .parseDelimitedFrom, you *must* use > > >> WriteVarint32, because that is the format it expects the length > > >> prefix. In this case, you'll need to call ArrayOutputStream:: > > >> ByteCount() to figure out how many bytes were actually serialized. > > > >> You also probably should create the ArrayOutputStream and > > >> CodedOutputStream on the stack, rather than using new. This will be > > >> slightly faster. > > > >> That said, the only issue here that affects correctness is the > > >> WriteVarint32 part. The rest shouldn't matter unless I missed > > >> something. You should change your code to do that, then if you are > > >> still having problems you should try dumping the contents of the > > >> buffer on both the C++ and the Java side. Maybe the input/output is > > >> getting messed up somewhere? > > > >> Good luck, > > > >> Evan > > > >> -- > > >> Evan Joneshttp://evanjones.ca/ > > > > -- > > > You received this message because you are subscribed to the Google Groups > > "Protocol Buffers" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > [email protected]<protobuf%[email protected] > > om> > > . > > > For more options, visit this group at > >http://groups.google.com/group/protobuf?hl=en. > > > -- > > James Michael DuPont > > Member of Free Libre Open Source Software Kosova and Albania > > flossk.org flossal.org > > > -- > > You received this message because you are subscribed to the Google Groups > > "Protocol Buffers" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<protobuf%[email protected] > > om> > > . > > For more options, visit this group at > >http://groups.google.com/group/protobuf?hl=en. -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.
