QT中使用QByteArray来存放了C++中的char数组。

两端使用相同的crc32进行校验,QT中却产生了随机的校验结果, C++端产生唯一的正确校验结果。

查看QByteArray相关资料,未发现有什么不妥之处,直到查看到如下文章:

https://blog.csdn.net/qq_33861317/article/details/95614667

才发现自己的错误:

 QByteArray* pBuf;
pBuf->append(PROTOCOL_HEAD);

pBuf->append(。。。);

crc = crc32(0x00, (unsigned char*)pBuf, bufferLength);

修改为:

crc = crc32(0x00, (unsigned char*)pBuf->data(), bufferLength);

即可。

相关文章:

  • 2022-12-23
  • 2021-10-26
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2022-12-23
  • 2021-06-12
猜你喜欢
  • 2022-12-23
  • 2021-08-14
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案