Bonjour,
Je ne trouve pas de solution au problème suivant, posé par mon chef.
Voici le contexte.
Ce que j'ai : une structure de données (typedef struct) contenant des uint8, des uint32, des char *, des int16 provenant d'une bibliothèque en C.
Ce que je veux : sérialiser une instance de cette structure en format Little Endian OU Big Endian, dans un fichier binaire avec 1) la taille requise de l'instance toujours en BigEndian 2) suivie de la valeur en LittleEndian ou BigEndian.
Actuellement j'y arrive presque via
Le problème est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 dataStream.setDevice(m_binFile); dataStream.setByteOrder(QDataStream::BigEndian /* ou LittleEndian*/); /* length */ dataStream << quint32(7); /* data (example for digital data without char * data) */ dataStream << qint16( QString(readBytesList.value(0)).toInt()) << quint32(QString(readBytesList.value(1)).toUInt()) << quint8( QString(readBytesList.value(2)).toUInt());
La fonction setByteOrder() change tous les octets, or je voudrais toujours avoir le champs "taille" en BigEndian.
Comment faire ?
Merci pour les pistes que vous pourriez m'apporter !
Partager