我一直在讀IntPtr,並且已經讀過它用來表示Handle(s)。這是什麼意思?我相信這是一個簡單的解釋,但燈泡目前只是沒有打開..什麼是句柄? IntPtr
7
A
回答
6
這通常是指操作系統句柄,並在內部使用。例如,Windows窗體使用IntPtr
來引用該控件的本機窗口句柄(HWND)。
Windows API中的句柄用於很多事情 - 大多數與操作系統有關的資源(文件,套接字,窗口等)都通過句柄公開,這個句柄實際上是一個指針。在託管代碼中,它存儲在IntPtr
中。
也就是說,IntPtr
也經常用於在互操作場景中存儲指針,因爲它會根據32位或64位代碼自動調整大小。
+0
+!用於Windows API方法中最常用的HWND。這真的是一個非常好的答案。 – 2011-04-14 18:19:59
6
「句柄」是一個「不透明的指針」。它是一個值(通常只是一個數組的索引),操作系統會將它提供給應用程序來表示內部對象,而不是給它一個指向實際對象的指針。這是出於安全和抽象的原因 - 它強制應用程序只能通過提供的API使用句柄。
相關問題
- 1. 從DataGridViewTextBoxCell獲取句柄IntPtr?
- 2. 什麼是事件句柄?
- 3. 什麼是事件句柄?
- 4. 「句柄」究竟是什麼?
- 5. 什麼是節點句柄?
- 6. 將IntPtr窗口句柄轉換爲IWin32Window^
- 7. 什麼是C++中的句柄?
- 8. http協議句柄是什麼?
- 9. 什麼是Matlab的有效句柄?
- 10. 什麼是「手柄」?
- 11. 從Selenium webdriver的當前窗口獲取窗口句柄(IntPtr)GUID
- 12. 什麼時候創建窗口句柄
- 13. 爲什麼CreateFile返回無效句柄?
- 14. 檢查matlab句柄是否是數字句柄
- 15. Java中的句柄的概念是什麼?
- 16. 什麼是Windows API中的「等待通知句柄」?
- 17. 什麼是函數句柄,它如何有用?
- 18. 爲什麼劇情句柄總是無效?
- 19. 什麼是Perl中的文件句柄的內置名稱?
- 20. 爲什麼SetOverlayIcon偶爾會拋出一個'無效光標句柄'COMException?
- 21. 爲什麼不hSetBuffering返回一個新的句柄,而不是改變給定的句柄?
- 22. CreateFileW()句柄返回-1
- 23. 獲取窗口句柄
- 24. 窗口句柄C#/。NET
- 25. 改變一個窗口的背景色,給定一個IntPtr句柄
- 26. 確定標量是否擁有文件句柄的最佳方法是什麼?
- 27. Java中的IntPtr(C#)等價於什麼?
- 28. IntPtr和Marshal.ReadIntPtr有什麼區別?
- 29. System.IO.UnmanagedMemoryStream - 爲什麼字節*代替IntPtr
- 30. 爲什麼使用IntPtr進行處理?
重複的問題:http://stackoverflow.com/questions/1148177/just-what-is-an-intptr-exactly – HABJAN 2011-04-14 18:03:22
@Habjan:不完全。 OP在詢問句柄,而這個問題是關於'IntPtr'的問題。 – Mehrdad 2011-04-14 18:04:24
[HANDLE指向的結構的可能的重複。](http://stackoverflow.com/questions/5343660/struct-which-a-handle-points-to) – Gabe 2011-04-14 18:06:35