【CSharp】int類型與IntPtr類型之間的轉換
- 1.背景
- 2.int轉IntPtr接口
- 3.IntPtr轉int接口
- 4.相互轉化示例
1.背景
.NET提供了一個結構體System.IntPtr專門用來代表句柄或指針。
IntPtr 結構,表示一個帶符號整數,其中位寬度與指針相同。
注解
類型 IntPtr 設計為一個整數,其大小與指針相同。 也就是說,此類型的實例應在 32 位進程中為 32 位,在 64 位進程中為 64 位。
支持 IntPtr 指針的語言可以使用 類型,并作為在支持和不支持指針的語言之間引用數據的常用方法。
IntPtr 對象還可用于保存句柄。 例如, 的 IntPtr 實例在 類中 System.IO.FileStream 廣泛使用,用于保存文件句柄。
2.int轉IntPtr接口
需要用到的接口1:
Marshal.AllocHGlobal(int cb) :從進程的非托管內存中分配內存。
來自命名空間:System.Runtime.InteropServices.
參數是Int32/或指向Int32的指針,表示內存中所需的字節數。
返回IntPtr,表示指向新分配的內存的指針。
注意必須使用 Fr