将unsigned char[10]转换为QBytearray;
Convert unsigned char[10] to QBytearray;
我看过很多关于这个的问题,但到目前为止没有一个适合我。
我试过两个最常见的答案,但我得到同样的错误。
只是一个unsigned char buf[10];
,
QByteArray databuf;
databuf = QByteArray::fromRawData(buf, 10);
或
QByteArray databuf;
databuf = QByteArray(buf, 10);
给了我同样的错误,
error: invalid conversion from 'unsigned char*' to 'const char*' [-fpermissive]
任何建议吗?
谢谢
这只是签名问题,所以这应该可以工作:
databuf = QByteArray(reinterpret_cast<char*>(buf), 10);
或使用遗留的c风格强制转换:
databuf = QByteArray((char*)buf, 10);
(这是关于你应该使用哪个的众多讨论之一)
更容易的选择是从buf
的声明中删除unsigned
,如果你不需要它的一些其他原因。
注意,如果使用fromRawData
方法,它不会复制字节,所以最好确保buf
不会很快超出作用域。
正如上面所说,传递给fromRawData
的参数应该是const char*
,而不是unsigned char*
。您可以将您的数组设置为const char
:
const char buf[10];
数组可以转换为指向其第一个元素的指针,该元素将指向const char*
,正如fromRawData
所期望的那样。
相关文章:
- 如何将QByteArray转换为std::istream或std::ifstream?
- 将 QByteArray 转换为无符号短:不符合预期
- 如何将小端格式的QByteArray转换为无符号长整型
- 有没有办法"QByteArray"变量数据直接放入变量"int"而无需强制转换?
- 如何在不将其转换为 ASCII 字符的情况下显示 QByteArray 的十六进制值
- 将 QByteArray 从大端序转换为小端序
- 将 CRC uint 转换为 QByteArray QT - C++
- QByteArray 和 QString 转换的问题
- QByteArray 转换为十六进制失败
- 如何将QByteArray转换为QString?
- QT中的QByTearray转换
- QByTearray进行INT转换
- qbyTearray转换为char(不是char*或constchar*)
- 将 QByteArray 转换为“long”会为相同的输入输出不同的结果
- 将int转换为Qt中的QByteArray
- Qt:将QPixmap保存到std::vector<无符号字符>-或者将QByteArray转换为std::
- 将十六进制存储在 QBytearray 中,提取它并将其转换为十进制
- 如何将 QImage 转换为 QByteArray
- 问如何将QByteArray转换为struct
- 如何将 QByteArray 转换为带有分隔符"-"的 QString?