我一直在 Windows 中玩 wlanapi。在我尝试使用函数WlanScan之前,我在编译或运行时没有任何问题。然后由于没有在范围内声明“WlanScan”,我无法编译。我编写了一个非常简短的程序来说明这一点,它使用两个函数:有效的WlanOpenHandle和无效的WlanScan。
#include <windows.h>
#include <wlanapi.h>
int main()
{
HANDLE hClient;
WlanOpenHandle(2, 0, 0, &hClient);
WlanScan(hClient, 0, 0, 0, 0);
}
像这样编译单个文件:
g++ main.cpp -lwlanapi
导致此错误:
main.cpp: In function 'int main()':
main.cpp:9:30: error: 'WlanScan' was not declared in this scope
WlanScan(hClient, 0, 0, 0, 0);
^
这可能是什么原因?我已经能够使用 wlanapi 中的一些功能。我在使用 minGW 编译的 Windows 7 上。
编辑: 根据 u/IInspectable 所说,我将用于编译的命令更改为:
g++ -D_WIN32_WINNT=_WIN32_WINNT_WIN7 main.cpp -lwlanapi
它奏效了!