C
Cobra911517 октября 2017 г. 6:28

Проблема при подключении к WiFi сетям

c++, qt, windows-application

Здравствуйте! Проблема в том что при реестрации соединения нужно выслать сигнал со статической функции.

Код:

WirelessConnect.h
static void WINAPI notificationCallBack(PWLAN_NOTIFICATION_DATA wlanData, PVOID context);
WirelessConnect.cpp DWORD dwResult = 0; dwResult = WlanRegisterNotification(hClient, WLAN_NOTIFICATION_SOURCE_ALL, TRUE, notificationCallBack, NULL, NULL, &dwPrevNotif); void WINAPI WirelessConnect::notificationCallBack(PWLAN_NOTIFICATION_DATA wlanData, PVOID context) { context = NULL; switch (wlanData->NotificationCode) { case wlan_notification_acm_connection_complete: emit apConnectionComplete(); qDebug() << "Connected!"; break; case wlan_notification_acm_connection_attempt_fail: emit apConnectionFailed(); qDebug() << "Failed!"; break; default: break; } } Test.cpp: WirelessConnect *wirelessAPConnect = new WirelessConnect(); connect(wirelessAPConnect, &WirelessConnect::apConnectionComplete, setAPConnection); connect(wirelessAPConnect, &WirelessConnect::apConnectionFailed, setAPConnectionFailed);

Ошибка: error: C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers.

Делал по другому:

dwResult = WlanRegisterNotification(hClient, WLAN_NOTIFICATION_SOURCE_ALL, TRUE, notificationCallBack, this, NULL, &dwPrevNotif);

void WINAPI WirelessConnect::notificationCallBack(PWLAN_NOTIFICATION_DATA wlanData, PVOID context)
{
    WirelessConnect *pThis = (WirelessConnect*)context;
    switch (wlanData->NotificationCode) {
        case wlan_notification_acm_connection_complete:
            pThis->apConnectionComplete();
        break;

        case wlan_notification_acm_connection_attempt_fail:
            pThis->apConnectionFailed();
        break;

        default:
            break;
    }
}

WLAN_CONNECTION_PARAMETERS connectionParameters;
connectionParameters.wlanConnectionMode = wlan_connection_mode_profile;
connectionParameters.strProfile = apName.toStdWString().c_str();
connectionParameters.dwFlags = 0;
connectionParameters.pDot11Ssid = NULL;
connectionParameters.pDesiredBssidList = 0;
connectionParameters.dot11BssType = dot11_BSS_type_any;
dwResult = WlanConnect(hClient, &pIfInfo->InterfaceGuid, &connectionParameters, NULL);

Сигнал передается но получается что идет или сбой программы позже или пишет что отключено сразу после подключения. Не могу точно проверить через Debugger где получается сбой, так как функция WlanConnect при подключении до сети возращает код 87 (неверный параметр) только в режиме Debug, в режиме Release все работает. Как думаете в чем может быть проблема и как это исправить? Спасибо.
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

4
Evgenii Legotckoi
  • 7 октября 2017 г. 6:47
  • (ред.)

День добрый!

Вот по этой ошибке

Ошибка: error: C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers.

Здесь можно попытаться обойти проблему с невозможностью применения this в статических функциях через использование синглтона.
В одной из статей я так и делал, это статья по логированию событий мыши . Посмотрите её, может поможет Вам.
Возможно, падает сеть по тому, что перестаёт существовать объект, который отвечает за сетевое соединение. Вообще, если честь, что это соединение через WinAPI, то вполне можно обойтись синглтоном.
    C
    • 7 октября 2017 г. 7:59

    Пробовал, но при подключении/отключении WiFi сети идет сбой и программа закрывается. Нужно через Debugger это проверить, но как, если WlanConnect возращает код 87 (неверный параметр).

    Иногда соединяет, если отключить, пишет что подключено и отключено одновременно. Буду еще проверять. Спасибо.

      C
      • 7 октября 2017 г. 8:28

      После отключения от сети: QObject::disconnect: Unexpected null parameter


      Видимо где-то обьект удаляется. Буду еще проверять.
        Evgenii Legotckoi
        • 7 октября 2017 г. 8:30
        • (ред.)
        • Ответ был помечен как решение.

        Да, вы правы, происходит удаление объекта если выдаёт: QObject::disconnect: Unexpected null parameter

          Комментарии

          Только авторизованные пользователи могут публиковать комментарии.
          Пожалуйста, авторизуйтесь или зарегистрируйтесь
          AD

          C++ - Тест 004. Указатели, Массивы и Циклы

          • Результат:50баллов,
          • Очки рейтинга-4
          m
          • molni99
          • 26 октября 2024 г. 1:37

          C++ - Тест 004. Указатели, Массивы и Циклы

          • Результат:80баллов,
          • Очки рейтинга4
          m
          • molni99
          • 26 октября 2024 г. 1:29

          C++ - Тест 004. Указатели, Массивы и Циклы

          • Результат:20баллов,
          • Очки рейтинга-10
          Последние комментарии
          i
          innorwall13 ноября 2024 г. 23:03
          Как написать игру на Qt - Урок 3. Взаимодействие с другими объектами what is priligy tablets What happens during the LASIK surgery process
          i
          innorwall13 ноября 2024 г. 20:09
          Использование переменных объявленных в CMakeLists.txt внутри C++ файлов where can i buy priligy online safely Tom Platz How about things like we read about in the magazines like roid rage and does that really
          i
          innorwall11 ноября 2024 г. 22:12
          Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
          i
          innorwall11 ноября 2024 г. 18:23
          QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
          i
          innorwall11 ноября 2024 г. 15:50
          Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
          Сейчас обсуждают на форуме
          i
          innorwall14 ноября 2024 г. 0:39
          добавить qlineseries в функции Listen intently to what Jerry says about Conditional Acceptance because that s the bargaining chip in the song and dance you will have to engage in to protect yourself and your family from AMI S…
          i
          innorwall11 ноября 2024 г. 10:55
          Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
          9
          9Anonim25 октября 2024 г. 9:10
          Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
          ИМ
          Игорь Максимов3 октября 2024 г. 4:05
          Реализация навигации по разделам Спасибо Евгений!

          Следите за нами в социальных сетях