IntPtr
时间: 2024-02-25 13:52:49 浏览: 74
C#中的IntPtr
5星 · 资源好评率100%
在C#语言中,`IntPtr`是一个结构体,用于表示指针或句柄的有符号整数类型。它可以用于与非托管代码交互,例如调用Windows API函数等。
`IntPtr`的大小与系统的位数有关。在32位系统中,`IntPtr`是一个4字节的整数类型,在64位系统中,`IntPtr`是一个8字节的整数类型。
可以使用`IntPtr`来代替指针类型,这样可以使得代码更加通用和可移植。同时,可以通过`Marshal`类中的方法将`IntPtr`转换为其他类型的指针或句柄类型,例如`int`、`long`、`void*`、`HWND`等等。
以下是使用`IntPtr`的一个示例:
```csharp
using System;
using System.Runtime.InteropServices;
class Program
{
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
static void Main(string[] args)
{
IntPtr hWnd = GetConsoleWindow();
Console.WriteLine("Console window handle: {0}", hWnd.ToInt32());
}
}
```
在这个示例中,`GetConsoleWindow`函数返回一个窗口句柄,我们使用`IntPtr`类型来接收这个句柄,并使用`ToInt32`方法将其转换为32位整数类型。然后将其输出到控制台中。
阅读全文