Qt QByteArray size - PullRequest
       9

Qt QByteArray size

2 голосов
/ 08 января 2012

Мне нужно добавить к QByteArray 4 байта, как кадр.(struct ([4 байта] [message]))

Я делаю:

 QByteArray byteArray;
 QByteArray byteArray2(man.SerializeAsString().c_str(), man.ByteSize()); // 31 byte
 qDebug()<<byteArray.size()<<"size"; // 0 bytes
 byteArray.resize(3); 
 qDebug()<<byteArray.size()<<"size"; // 3, ok
 byteArray.append(man.ByteSize()); 
 qDebug()<<byteArray.size()<<"size"; // 4
 byteArray2.prepend(byteArray);     
 qDebug()<<byteArray2.size()<<"size"; // return 35, ok
 qDebug()<<(byteArray2); // not print my message

Извините за мой английский.

1 Ответ

0 голосов
/ 08 января 2012

Вы пытаетесь напечатать строку, которая (должна) начинаться с \0 символов (двоичный ноль).qDebug(), скорее всего, вообще ничего не напечатает - \0 - это терминатор строки.

Но в вашем коде есть ошибка, которую вы должны сделать:

 byteArray.fill(0, 3);

вместоresize, в противном случае вы получите случайные данные в первых байтах.

...