c++ - QNetworkConfigurationManager::allConfigurations() 没有列出 WLAN

标签 c++ windows qt networking wifi

在 Windows 10 下运行,使用两个不同的系统进行测试:

当我运行 QNetworkConfigurationManager::allConfigurations() 时,我没有得到任何 WLAN 配置,即使我主动连接到 Wifi 网络也是如此。

标题:

public:
  NetworkManager(QObject* parent = 0);

private slots:
  void onNetworkConfigUpdate();

private:
  QNetworkConfiguration cfg;
  QList<QNetworkConfiguration> netcfgList;
  QNetworkConfigurationManager ncm;

.cpp

NetworkManager::NetworkManager(QObject* parent) : QObject(parent) {
    ncm.updateConfigurations();
    connect(&ncm, SIGNAL(updateCompleted()), this,  SLOT(onNetworkConfigUpdate()));
}

void NetworkManager::onNetworkConfigUpdate() {
netcfgList = ncm.allConfigurations();
for (auto& x : netcfgList) {
    if (x.bearerType() == QNetworkConfiguration::BearerWLAN) {
        qDebug() << "Wifi found: " << x.name();
    } else {
        qDebug() << "Something else: " << x.bearerType() << " - name: " << x.name();
    }
  }
}

输出:

Something else: 0 - name: "Teredo Tunneling Pseudo-Interface"

Something else: 1 - name: "Ethernet"

Something else: 1 - name: "VirtualBox Host-Only Network"

我在 Windows 10 上运行; Qt 5.9.4 与 MSVC2015

我检查了英特尔无线网卡和外部 USB Wifi-Stick。为什么没有显示任何 WLAN?

最佳答案

我遇到了同样的问题。对我来说是由于缺少承载插件 DLL 造成的。

为了解决这个问题,我必须在我的应用程序根文件夹中复制 QT“plugins/bearer”文件夹(包含 qgenericbearer.dll 和 qnativewifibearer.dll)。

像这样:

  • 应用文件夹/
    • 应用程序.exe
    • ...
    • Qt5Network.dll
    • 承载者/
      • qgenericbearer.dll
      • qnativewifibearer.dll

关于c++ - QNetworkConfigurationManager::allConfigurations() 没有列出 WLAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48768295/

相关文章:

c++ - 有人能告诉我为什么在输入 'y' 继续后我会卡在验证循环中吗?

java - 将 java 应用程序从不区分大小写的文件系统移动到区分大小写的文件系统

c++ - 全局变量不更新自身 - C++

c++ - 在qmake项目中链接libcairo

windows - 如何在不轮询的情况下检测 MS Windows IP 地址更改

c++ - 如何阻止 Qt 的 setStyleSheet 重置我的表单和按钮上的指定颜色?

c++ - Recv方法使用

c++ - 无法从具有相同类型的两个来源之一创建 std::string

c++ - 节点之间的存储成本

python - Windows 10 和无法找到 vcvarsall.bat