while (count < bluetoothCount) { WSAQUERYSET result; memset(&result, 0, sizeof(result)); result.dwSize = sizeof(result); iResult = WSALookupServiceNext(lookupHandle, LUP_RETURN_NAME | LUP_RETURN_ADDR, &result); if (iResult != 0) { break; } count++; } &result报错,实参与形参不兼容 怎么修改
时间: 2023-06-17 22:08:29 浏览: 111
pbws32.dll下载,获取电脑ip地址
4星 · 用户满意度95%
根据你提供的代码,我们可以看出 `WSAQUERYSET result` 是在 while 循环内部定义的,因此在 while 循环外部是无法访问到 `result` 的。所以,你可能需要将 `WSAQUERYSET result` 定义在 while 循环外部,以便在循环结束后访问它。
另外,根据 MSDN 中对 `WSALookupServiceNext` 函数的描述,该函数的第二个参数应该是一个指向 `WSAQUERYSET` 结构体的指针,而你的代码中传入的是 `&result`,即指向 `WSAQUERYSET` 结构体的指针的指针,这可能会导致编译器报错。因此,你需要将调用 `WSALookupServiceNext` 函数时的第二个参数修改为 `&result`。
综上所述,你可以尝试将代码修改为如下形式:
```
WSAQUERYSET result;
memset(&result, 0, sizeof(result));
result.dwSize = sizeof(result);
int count = 0;
while (count < bluetoothCount) {
int iResult = WSALookupServiceNext(lookupHandle, LUP_RETURN_NAME | LUP_RETURN_ADDR, &result);
if (iResult != 0) {
break;
}
count++;
}
// 在这里访问 result
```
阅读全文