He estado leyendo en IntPtr y he leído que se usa para representar una (s) manija (s). Que significa exactamente? Estoy seguro de que es una explicación simple, pero la bombilla simplemente no se enciende en este momento ...¿Qué son las asas? IntPtr
Respuesta
Esto normalmente se refiere a un sistema operativo Handle, y se usa internamente. Por ejemplo, Windows Forms usa un IntPtr
para referirse al identificador de ventana nativo del control (HWND).
Los identificadores en la API de Windows se utilizan para muchas cosas: la mayoría de los recursos relacionados con el sistema operativo (archivos, sockets, ventanas, etc.) están expuestos a través de un identificador, que efectivamente es un puntero. En el código administrado, esto se almacena en un IntPtr
.
Dicho esto, IntPtr
también se usa regularmente para almacenar punteros en escenarios de interoperabilidad, ya que cambia el tamaño automáticamente según el código de 32 bits o de 64 bits.
+! para el uso de HWND que se usa con mayor frecuencia en los métodos API de Windows. Esta honestamente es una muy buena respuesta. –
Un "mango" es un "puntero opaco". Es un valor (generalmente solo un número que es un índice en una matriz) que el sistema operativo le da a una aplicación para representar un objeto interno, en lugar de darle un puntero al objeto real. Esto se debe a razones de seguridad y abstracción: obliga a la aplicación a utilizar el identificador solo a través de las API proporcionadas.
- 1. ¿Qué es intptr?
- 2. C# punteros vs IntPtr
- 3. ¿Por qué usar IntPtr para manejarlo?
- 4. ¿Qué son las fortunas?
- 5. IntPtr vs ref C#
- 6. ¿Qué son las cookies firmadas y por qué son útiles?
- 7. ¿Qué son las API privadas
- 8. ¿Qué son las variables puras?
- 9. ¿Qué son las variables estáticas?
- 10. R: ¿Qué son las tragamonedas?
- 11. IntPtr vs UIntPtr
- 12. ¿Cómo obtengo las asas de todas las figuras abiertas en MATLAB
- 13. C# Convertir IntPtr en int
- 14. nueva IntPtr (0) vs. IntPtr.Zero
- 15. IntPtr, SafeHandle y HandleRef - Explicación
- 16. Cómo liberar IntPtr en C#?
- 17. Cómo convertir IntPtr en byte *
- 18. ¿Qué son las tuberías con nombre?
- 19. ¿Qué son las colecciones genéricas en C#?
- 20. ¿Qué son las sesiones sin cookies?
- 21. ¿Qué son las funciones __defineGetter __() y __defineSetter __()?
- 22. ¿Qué son las convenciones de llamadas personalizadas?
- 23. ¿Qué son realmente las cadenas en .NET?
- 24. ¿Qué son las etiquetas de documentación C#?
- 25. ¿Qué tan estables son las máquinas ec2?
- 26. ¿Por qué son repetibles las iteraciones?
- 27. ¿Por qué las interfaces no son [Serializable]?
- 28. ¿Qué son exactamente las funciones anónimas?
- 29. ¿Qué son las claves externas de MySQL?
- 30. ¿Qué son las citas de F #?
Pregunta duplicada: http://stackoverflow.com/questions/1148177/just-what-is-an-intptr-exactly – HABJAN
@Habjan: No del todo. El OP pregunta por los identificadores, mientras que la pregunta es acerca de 'IntPtr'. – Mehrdad
posible duplicado de [struct a la que apunta un HANDLE.] (Http://stackoverflow.com/questions/5343660/struct-which-a-handle-points-to) – Gabe