【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