Op 07/03/2016 om 19:00 schreef [email protected]:


QDataStream out2(&file); // and module A write those datas to a file.
     out2 <<  bai.size();
     out2 <<  bai;


All of the following is IMHO:

I think that if you are going to read the size back as an 'int'
you should insure that an 'int' is written in the first place:

    out2 << (int)bai.size();

Sure, you can look and see that the size() of a QByteArray returns
an 'int', but that is only as of today. You should get into the habit
of controlling the types written to QDataStreams.
Actually, for reading and writing binary data files, I think it is wise to get into the habbit of using explicitly sized types. That is, write out and read back a qint8, a qint32 or a qint64, not an int or a long. int and other integer types are not guaranteed to be the same size across platforms, so you may get into trouble if you are not explicit about how many bytes you want or expect your values to be encoded in.

André

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to