我正在修改扫描附近无线信号的开源代码。程序代码如下:
#pragma comment(lib, "wlanapi.lib")
#include <stdio.h>
#include <windows.h>
#include <wlanapi.h>
VOID WlanNotification(WLAN_NOTIFICATION_DATA *wlanNotifData,VOID *p)
{
if(wlanNotifData->NotificationCode == wlan_notification_acm_scan_complete)
{
bWait = false;
}
else if(wlanNotifData->NotificationCode == wlan_notification_acm_scan_fail)
{
printf("Scanning failed with error: %x\n", wlanNotifData->pData);
bWait = false;
……
我想知道如何编译具有 wlanapi.h 和 windows.h 依赖项的源代码?
请注意,我希望此代码在 Windows(而非 Linux)上运行。我正在为简单的 Windows 用户编写一个工具,可以为他们诊断他们的 Wifi 安全性。第一步是感知最近的 WiFi AP 及其各自的加密类型。我只想知道如何以最简单的方式为具有“windows.h”或“wlanapi.h”依赖项的 Windows 平台编译此代码。
最佳答案
了解 C 和 C++ 是可移植语言这一点很重要,但这并不意味着 API 对于不同的操作系统是相同的 - 这是一个很好的例子。
您的问题的简单解决方案可能是找到另一个已经在 Linux 平台上运行的资源。这似乎是一个不错的资源:http://tuxmobil.org/linux_wireless_sniffer.html
如果您的目标是让这段代码在Linux上运行,那么您将需要找到相应的Linux接口(interface)。这里有一个问题:Wireless API for Linux in C or Java
不幸的是,这不是 Windows 代码的直接“插件”兼容接口(interface),因此您必须对代码进行一些非常重要的修改(或构建一个模拟 wlanapi.h 功能的兼容性库,但我的粗略估计,这并不容易!)
关于c++ - 如何编译具有 'wlanapi.h' 和 'windows.h' 依赖项的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21621013/