#c #wlanapi
#c #wlanapi
Вопрос:
для подключения к открытой точке доступа я заполняю структуру WLAN_CONNECTION_PARAMETERS, как показано ниже
WLAN_CONNECTION_PARAMETERS ConnectionParameters;
ConnectionParameters.wlanConnectionMode = wlan_connection_mode_discovery_unsecure;
ConnectionParameters.strProfile = L"";
ConnectionParameters.pDot11Ssid = amp;Dot11Ssid;
ConnectionParameters.pDesiredBssidList = nullptr;
ConnectionParameters.dot11BssType = dot11_BSS_type_independent;
ConnectionParameters.dwFlags = WLAN_CONNECTION_ADHOC_JOIN_ONLY;
WlanConnect()
Функция возвращает ERROR_SUCCESS
.
NotificationCallback()
Функция выводит:
wlan_notification_acm_connection_start
Currently connecting to "BT.03" using profile "BT.03" **// Correct**
WLAN_NOTIFICATION_SOURCE_ACM
**wlan_notification_acm_connection_attempt_fail**
The connection failed. wlanReasonCode: 163851
The reason is "La rete specificata non è disponibile."
Где ошибка?
У вас есть фрагмент кода для подключения к новой открытой беспроводной точке доступа с определенным ssid?
Комментарии:
1. Пожалуйста, опубликуйте код, который настраивает
Dot11Ssid
.2. Ваш код говорит
strProfile = L""
, но на вашем выходном дисплее написано «BT.03». Пожалуйста, опубликуйте свой фактический код или дайте понять, что вы скрываете секреты.
Ответ №1:
Документация для WLAN_CONNECTION_PARAMETERS
состояний, которые strProfile
должны быть установлены NULL
при использовании wlan_connection_mode_discovery_unsecure
, но ваш код устанавливает его L""
.
Если
wlanConnectionMode
установлено значениеwlan_connection_mode_discovery_secure
илиwlan_connection_mode_discovery_unsecure
, тоstrProfile
должно быть установлено значениеNULL
.
Поэтому измените свой код на это:
ConnectionParameters.strProfile = NULL;
Комментарии:
1. @DenisGottardello
nullptr
— это не то же самое,NULL
что если бы. Win32 по-прежнему является C (не C ) API, поэтому всегда используйтеNULL
вместоnullptr
при использовании Win32.2. @DenisGottardello Просто отредактируйте свой первоначальный вопрос.
Ответ №2:
ConnectionParameters.strProfile= nullptr;
не решить.
Решение заключается в добавлении
memset(amp;ConnectionParameters, 0, sizeof(WLAN_CONNECTION_PARAMETERS));