![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Не забывайте указать, какой спецификатор используется до ваших конструкций (const, var, type...). Скорее всего, у вас тип Longint, т.е. знаковый, 4 байта, а $FFFFFFFF не влазит в этот диапазон. Нужно Longword.
|
|
#17
|
||||
|
||||
|
Цитата:
А вообще, наверное, для этого модуля нужно выставить {$MINENUMSIZE 4}, чтобы было совместимо с сишными исходниками. Мож тогда предупреждение само собой пропадет. |
| Этот пользователь сказал Спасибо Freeman за это полезное сообщение: | ||
Agat330 (25.07.2014)
| ||
|
#18
|
|||
|
|||
|
Перечисления в "Type" находятся.
|
|
#19
|
||||
|
||||
|
Выложи где-нибудь полный исходник. Под какую он версию Delphi?
|
|
#21
|
|||
|
|||
|
VOID означает, что на Delphi нужно писать procedure, а не function (в Си нет процедур, только функции. VOID означает, что функция ничего не возвращает).
PVOID это указатель. В параметре pReserved поставьте константу nil. В параметре pMemory ставьте указатель на массив, обычно это адрес первого элемента (напр., @Mas[0]). Последний раз редактировалось AlexSku, 24.07.2014 в 12:43. |
| Этот пользователь сказал Спасибо AlexSku за это полезное сообщение: | ||
Agat330 (24.07.2014)
| ||
|
#22
|
|||
|
|||
|
Насчет pMemory - не понял, о каком массиве речь. Он типа pVoid - указатель в пустоту?
Последний раз редактировалось Agat330, 24.07.2014 в 14:00. |
|
#23
|
||||
|
||||
|
Цитата:
|
|
#24
|
|||
|
|||
|
Будете смеяться, я наконец-то допёр насчет pMemory
![]() Код:
procedure WlanFreeMemory(pMemory: Pointer);
stdcall;
external 'wlanapi.dll' name 'WlanFreeMemory';Freeman, после добавления {$MINENUMSIZE 4} Warning'и не исчезли. А вариант Integer($ffffffff) сработал. То есть сейчас перечисления у меня выглядят так: Код:
Type
...
DOT11_AUTH_ALGORITHM = (
DOT11_AUTH_ALGO_80211_OPEN = $1,
...
DOT11_AUTH_ALGO_RSNA_PSK = $7,
DOT11_AUTH_ALGO_IHV_START = Integer($80000000),
DOT11_AUTH_ALGO_IHV_END = Integer($ffffffff));
DOT11_CIPHER_ALGORITHM = (
DOT11_CIPHER_ALGO_NONE = $00,
...
DOT11_CIPHER_ALGO_WEP = $101,
DOT11_CIPHER_ALGO_IHV_START = Integer($80000000),
DOT11_CIPHER_ALGO_IHV_END = Integer($ffffffff));
DOT11_PHY_TYPE= (
dot11_phy_type_unknown = $0,
...
dot11_phy_type_vht = $8,
dot11_phy_type_IHV_start = Integer($80000000),
dot11_phy_type_IHV_end = Integer($ffffffff));Последний раз редактировалось Agat330, 25.07.2014 в 22:11. |
|
#25
|
|||
|
|||
|
Почему у вас нумерация WLAN_INTERFACE_STATE не с 0 а с 1?
Если с нуля, то =0, =1 и т.д. можно не указывать. У массивов также лучше индексы делать с 0: не [1..256], а [0..255]. Единственно, если это строка, то добавить один элемент (в конце ASCIIZ будет 0). Последний раз редактировалось AlexSku, 28.07.2014 в 11:02. |
|
#26
|
|||
|
|||
|
По тому, что протупил. Спасибо, исправил
![]() |