我正在尝试使用qFromBigEndian从通过udp套接字接收的字节流中读取32位int。
void processData(uchar *data)
{
qint32 addr;
addr = qFromBigEndian(data);
}
编译它会出现以下错误: 错误:从'uchar *'无效转换为'qint32'
Qt文档说:
T qFromBigEndian(const uchar * src)
Reads a big-endian number from memory location src and returns the number in the host byte order representation. Note: Template type T can either be a qint16, qint32 or qint64.
答案 0 :(得分:6)
请注意qFromBigEndian(const uchar *src)
是一个功能模板。
您缺少模板参数,请使用
addr = qFromBigEndian<qint32>(data);
相反,事情将按预期发挥作用。