quint32转void
时间: 2023-10-24 14:04:38 浏览: 85
可以使用以下代码将 quint32 类型的变量转换为 void* 类型:
```cpp
quint32 value = 12345;
void* ptr = &value;
```
这里将 quint32 类型的变量 value 的地址赋值给了 void* 类型的指针 ptr。这样就可以将 quint32 类型的变量作为 void* 类型的参数传递给某些函数了。需要注意的是,在使用 void* 类型的指针时,需要进行类型转换才能访问指针所指向的变量。
相关问题
quint32转void*
可以使用以下代码将 quint32 类型的变量转换为 void* 类型:
```cpp
quint32 value = 12345;
void* ptr = &value;
```
这里将 quint32 类型的变量 value 的地址赋值给了 void* 类型的指针 ptr。这样就可以将 quint32 类型的变量作为 void* 类型的参数传递给某些函数了。需要注意的是,在使用 void* 类型的指针时,需要进行类型转换才能访问指针所指向的变量。
D:\QT\InverterCAN\CAN\mainwindow.cpp:17: error: no matching function for call to 'MainWindow::connect(CANThread*&, void (CANThread::*)(VCI_CAN_OBJ*, unsigned int, unsigned int), MainWindow*, void (ReveDataProc::*)(VCI_CAN_OBJ*, quint32, quint32))' connect(canthread,&CANThread::getProtocolData,this,&ReveDataProc::onGetProtocolData); ^
这个错误是因为 `connect` 函数中的第二个参数的类型不匹配。
`CANThread::getProtocolData` 的声明可能是这样的:
```cpp
void CANThread::getProtocolData(VCI_CAN_OBJ* data, unsigned int len, unsigned int id);
```
而 `ReveDataProc::onGetProtocolData` 的声明可能是这样的:
```cpp
void ReveDataProc::onGetProtocolData(VCI_CAN_OBJ* data, quint32 len, quint32 id);
```
可以看到,它们的参数类型不完全匹配。具体来说,`len` 和 `id` 的类型不同,并且 `quint32` 是 Qt 中的 typedef,它与无符号整数类型 `unsigned int` 不同。
为了解决这个问题,你需要修改 `ReveDataProc::onGetProtocolData` 的声明,让它的参数类型与 `CANThread::getProtocolData` 完全匹配。例如,你可以这样声明它:
```cpp
void ReveDataProc::onGetProtocolData(VCI_CAN_OBJ* data, unsigned int len, unsigned int id);
```
然后,在 `connect` 函数中调用 `&ReveDataProc::onGetProtocolData` 即可。
```cpp
connect(canthread, &CANThread::getProtocolData, this, &ReveDataProc::onGetProtocolData);
```
阅读全文