error: invalid conversion from ‘__u8* {aka unsigned char*}’ to ‘const char*’ [-fpermissive] cameraList.append(QString::fromLocal8Bit(input.name)); ~~~~~~^~~~
时间: 2024-02-14 07:19:06 浏览: 31
这个错误是因为你试图将一个无符号字符指针(__u8*)转换成一个常量字符指针(const char*),而这种转换是不允许的。解决这个问题的方法是使用QString的fromUtf8()函数,它可以将一个以UTF-8编码的字符数组转换成一个QString对象。你可以这样修改代码:
cameraList.append(QString::fromUtf8(input.name));
相关问题
error: invalid conversion from ‘__u8* {aka unsigned char*}’ to ‘const char*’ [-fpermissive] cameraList.append(QString::fromUtf8(input.name)); ~~~~~~^~~~
这个错误是因为你试图将一个无符号字符指针(__u8*)转换成一个常量字符指针(const char*),而这种转换是不允许的。解决这个问题的方法是使用QString的fromUtf8()函数,它可以将一个以UTF-8编码的字符数组转换成一个QString对象。你可以这样修改代码:
cameraList.append(QString::fromUtf8(input.name));
error: invalid conversion from ‘char*’ to ‘unsigned char*’ [-fpermissive]
这个错误是因为你在将一个 char 指针转换为 unsigned char 指针时没有进行强制类型转换。在 C++ 中,char 和 unsigned char 是不同的类型,它们之间的转换需要显式地进行类型转换。
例如,如果你的代码是这样的:
```c++
char* str = "hello";
unsigned char* ustr = str;
```
你需要将第二行改为:
```c++
unsigned char* ustr = reinterpret_cast<unsigned char*>(str);
```
这样就可以将 char 指针转换为 unsigned char 指针了。请注意,这种转换可能会导致未定义的行为,因为它假设 char 数组中的每个元素都可以安全地转换为 unsigned char 类型。