Показать сообщение отдельно
  #11  
Старый 21.07.2014, 10:16
Agat330 Agat330 вне форума
Прохожий
 
Регистрация: 08.04.2014
Сообщения: 26
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ага, спасибо, TGUID Delphi принял
Пересмотрел свой вчерашний код и увидел косяк Буду исправлять.

Вот, исправленное. Delphi ошибок не находит.
Код:
type
  Tfrm_Main = class(TForm)
  ...
  end;
 
  WLAN_INTERFACE_STATE = (wlan_interface_state_not_ready,
                          wlan_interface_state_connected,
                          wlan_interface_state_ad_hoc_network_formed,
                          wlan_interface_state_disconnecting,
                          wlan_interface_state_disconnected,
                          wlan_interface_state_associating,
                          wlan_interface_state_discovering,
                          wlan_interface_state_authenticating);
 
  WLAN_INTERFACE_INFO = record
    InterfaceGuid: TGUID;
    strInterfaceDescription: array [1..256] of WChar;
    isState: WLAN_INTERFACE_STATE;
  end;
 
  PWLAN_INTERFACE_INFO_LIST = record
    dwNumberOfItems: dword;
    dwIndex: dword;
    Network: array of WLAN_INTERFACE_INFO;
  end;
 
var
  frm_Main: Tfrm_Main;
 
implementation
...
function WlanEnumInterfaces(hClientHandle:THandle;
                            pReserved: pointer;
                            ppInterfaceList: PWLAN_INTERFACE_INFO_LIST): DWORD;
                            stdcall; external 'wlanapi.dll' name 'WlanEnumInterfaces';
...
{$R *.dfm}
Ссылки на соответствующие страницы MSDN, от которых отталкивался:
WLAN_INTERFACE_STATE
WLAN_INTERFACE_INFO
PWLAN_INTERFACE_INFO_LIST

Народ, у меня образовалась куча непоняток, я не понимаю, как сделать правильно:
1. Что означает звездочка в С? Она ж не спроста...
Цитата:
GUID *pInterfaceGuid
PWLAN_AVAILABLE_NETWORK_LIST *ppAvailableNetworkList

2. Непонятные конструкции:
Цитата:
UCHAR ucSSID[DOT11_SSID_MAX_LENGTH]
Цитата:
DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER]

3. Не понял вот это - то есть
Цитата:
wlanNotConnectableReason: WLAN_REASON_CODE;
можно просто поставить DWORD и будет ОК?

4. MSDN: "WLAN_SIGNAL_QUALITY is of type ULONG." (На этой странице) Многие значения определены типом ULONG. На каком-то форуме нашел, что он соответствует дельфийскому Longint. То есть, можно смело заменять у себя одно другим или есть подводные камни?

В общем, я не знаю, какой Кащей писал этот код, где тип переменной описывается структурой, в типы полей которой вложена пачка других структур, в которых творится тоже самое... Когда все заработает - оформлю в статью и выложу на Хабре, пусть другие пользуются.
Ответить с цитированием