Для чего нужны ручки? IntPtr

Я читал о IntPtr и читал, что он используется для представления дескриптора (ов). Что именно это означает? Я уверен, что это простое объяснение, но лампочка в данный момент просто не включается ..


person MintGrowth    schedule 14.04.2011    source источник
comment
Повторяющийся вопрос: stackoverflow.com/questions/1148177 /   -  person HABJAN    schedule 14.04.2011
comment
@Habjan: Не совсем. OP спрашивает о дескрипторах, тогда как этот вопрос спрашивает о IntPtr.   -  person user541686    schedule 14.04.2011
comment
возможный дубликат структуры , на которую указывает HANDLE.   -  person Gabe    schedule 14.04.2011


Ответы (2)


Обычно это относится к дескриптору операционной системы и используется внутри компании. Например, Windows Forms использует IntPtr для ссылки на собственный дескриптор окна элемента управления (HWND).

Дескрипторы в Windows API используются для многих вещей - большинство ресурсов, связанных с операционной системой (файлы, сокеты, окна и т. Д.), Отображаются через дескриптор, который фактически является указателем. В управляемом коде это сохраняется в IntPtr.

При этом IntPtr также регулярно используется для хранения указателей в сценариях взаимодействия, так как он автоматически изменяет размер на основе 32-битного или 64-битного кода.

person Reed Copsey    schedule 14.04.2011
comment
+! для использования HWND, который чаще всего используется в методах Windows API. Честно говоря, это действительно хороший ответ. - person Security Hound; 14.04.2011

«Дескриптор» - это «непрозрачный указатель». Это значение (обычно просто число, являющееся индексом в массиве), которое операционная система предоставляет приложению для представления внутреннего объекта, вместо того, чтобы указывать ему указатель на фактический объект. Это сделано из соображений безопасности и абстракции - это заставляет приложение использовать дескриптор только через предоставленные API.

person user541686    schedule 14.04.2011