c++ - 如何编译具有 'wlanapi.h' 和 'windows.h' 依赖项的 C++ 代码

标签 c++ windows wifi header-files

我正在修改扫描附近无线信号的开源代码。程序代码如下:

#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/

相关文章:

c++ - 如何在 C++ 中声明/定义相互依赖的模板?

c++ - 基于不同坐标系旋转图像

Android:控制 Wifi 范围效力

c# - {"The directory name is invalid"} Win32Exception 未处理

wifi - 在 Windows 10 中启用/禁用热点虚拟 Wifi 时出错

ios - 检测特定的 wifi 网络是否触手可及

c++ - 无序映射的堆栈溢出

c++ - 表达式必须是二维数组的可修改左值

c - 如何使我的 MessageBox 弹出在所有表单的顶部?

c++ - 不能包含 mysql