handutil.cpp:237:12: error: cannot initialize a variable of type 'void *' with an rvalue of type 'QFunctionPointer' (aka 'void (*)()')
时间: 2024-10-27 09:02:32 浏览: 8
JSP上传图片产生 java.io.IOException: Stream closed异常解决方法
5星 · 资源好评率100%
这个错误提示表明,在`handutil.cpp`文件的第237行,你试图将一个`QFunctionPointer`类型的指针初始化为`void *`类型的变量,这是不允许的。`QFunctionPointer`是一个特定于Qt库的函数指针类型,而`void *`是通用的指针类型,用于存储任意类型的指针。
解决这个问题通常需要两步:
1. 首先确认你的确需要将`QFunctionPointer`转换为`void *`。如果不是必需的,你可以直接使用`QFunctionPointer`作为原类型处理。
2. 如果确实需要转换,你需要创建一个新的`void *`指向`QFunctionPointer`的地址,而不是尝试复制`QFunctionPointer`本身。这通常通过取地址运算符`&`实现:
```cpp
void *functionAddress = static_cast<void*>(yourQFunctionPointer);
```
然后,记得在后续操作中,如果需要调用该函数,一定要通过正确的类型转换回去:
```cpp
(*static_cast<QFunctionPointer>(functionAddress))();
```
阅读全文