Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

Что такое HANDLE в программировании под windows?

#windows


Что такое HANDLE? Я начал путать его с контекстом устройства. Но что-то мне подсказывает,
что это разные вещи.    


Ответы

Ответ 1



HANDLE - дескриптор, т.е. число, с помощью которого можно идентифицировать ресурс. С помощью дескприторов можно ссылаться на окна, объекты ядра, графические объекты и т.п. Можно провести аналогию с массивом: у нас имеется набор ресурсов, а HANDLE - это индекс, который указывает на конкретный ресурс. Это все, конечно, абстрактно, но думаю идея понятна.

Ответ 2



Вы не работаете с контекстом устройства напрямую. Сам по себе контекст устройства - "черный ящик", что у него внутри, мы не знаем. У контекста устройства есть хэндл (идентификатор), который, например, возвращают функции CreateDC и GetDC и который можно передать в другие WinAPI функции. Получается, контекст устройства (DC) - некий сложный объект, а хэндл контекста устройства (hDC) - число. Хэндл контекста устройства - это один из видов (частный случай) хэндлов. Кроме хэндлов DC, есть хэндлы окон, файлов, битмэпов, всяких кистей/карандашей и т.д.

Ответ 3



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

Комментариев нет:

Отправить комментарий