FreeBasic
Главная
Вход
Регистрация
Среда, 25.03.2026, 20:35Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
unused as long
mashakovmaratДата: Воскресенье, 22.03.2026, 18:26 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 38
Репутация: 0
Статус: Offline
Здравствуйте.

Например, в windef.bi встретил код:

Код
type HWND__
    unused as long
end type

type HWND as HWND__ ptr

Строка "unused as long".
Не могу понять.

Из Си знаю, unused - атрибут для компилятора.

Будьте добры )) объясните как это работает в этом месте кода.

И второе - я так понимаю, нечто вроде мануала, когда все в одном месте, для библиотеки windows.bi нет. Сейчас достаю информацию отсюда https://learn.microsoft.com/ru-ru/windows/win32/api/

Всё так?

Спасибо.


Сообщение отредактировал mashakovmarat - Воскресенье, 22.03.2026, 19:33
 
haavДата: Воскресенье, 22.03.2026, 20:46 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1455
Репутация: 50
Статус: Offline
Цитата mashakovmarat ()
Не могу понять.


unused - просто название переменной (поля типа) , в данном случае оно может быть любым.

Цитата mashakovmarat ()
И второе - я так понимаю, нечто вроде мануала, когда все в одном месте, для библиотеки windows.bi нет

Вообще все заголовки адаптируются с языка СИ (GCC MinGw). Вряд ли кто-то из разработчиков компиляторов пишет мануалы для файлов заголовков. 
Цитата mashakovmarat ()
Сейчас достаю информацию отсюда

все верно , информацию надо брать из первоисточников.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
mashakovmaratДата: Воскресенье, 22.03.2026, 21:54 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 38
Репутация: 0
Статус: Offline
Цитата haav ()
unused - просто название переменной (поля типа) , в данном случае оно может быть любым
Мда. Что-то совсем я "оттормозился".
Спасибо большое.

Добавлено (23.03.2026, 14:23)
---------------------------------------------
Интересно, не смог найти на microsoft.com структуру данных дескриптора HWND.
Прихожу к выводу, что HWND - это, скорее всего, long-число.
Тогда почему в библиотеке windows.bi оно представлено как объект типа TYPE. Очевидно, в таком виде оно представлено и в Win32API.
Я потому и предполагал, что кроме свойства unused там должны быть еще поля (свойства), например: id (дескриптор, указатель) родителя, z-index и пр.


Сообщение отредактировал mashakovmarat - Понедельник, 23.03.2026, 15:04
 
haavДата: Понедельник, 23.03.2026, 17:57 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1455
Репутация: 50
Статус: Offline
Цитата mashakovmarat ()
Прихожу к выводу, что HWND - это, скорее всего, long-число.

Вообще-то это указатель.

Цитата mashakovmarat ()
Тогда почему в библиотеке windows.bi оно представлено как объект типа TYPE. Очевидно, в таком виде оно представлено и в Win32API.

Сделано так , чтобы была возможная расширяемость в будущем. Есть и другие причины , но они больше для C/C++ (ведь заголовки у FB адаптированы с СИ).


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Понедельник, 23.03.2026, 18:26 | Сообщение # 5
Генерал-майор
Группа: Друзья
Сообщений: 294
Репутация: -1
Статус: Offline
mashakovmarat, меня как то это задолбало и просто прошёлся по всем хедерам и выписал себе на листок
все самые встречающиеся типы. И как они интерпретируются в зачатке.

HWND так:
Код
TYPE HWND__
     i AS INTEGER
END TYPE
TYPE HWND AS HWND__ PTR


Добавлено (23.03.2026, 18:29)
---------------------------------------------
Цитата mashakovmarat ()
Прихожу к выводу, что HWND - это, скорее всего, long-число.

На 32 битном указатель - LONG, на 64 битном LONGINT. И нужно помнить что INTEGER - мимикрирующий тип. Который тоже
меняется LONG/LONGINT. Т.е. и сам указатель меняется и внутри структуры тоже тип данных меняется от разрядности ОС.


Сообщение отредактировал DarkDemon - Понедельник, 23.03.2026, 18:35
 
  • Страница 1 из 1
  • 1
Поиск: