1、C#中的IntPtr類型被稱之為“平台特定的整數類型”,用於本機資源,例如窗口句柄。
2、資源的大小取決於使用的硬件和操作系統,即此類型的實例在32位硬件和操作系統中將是32位,在64位硬件和操作系統中將是64位;但其大小總是足以包含系統的指針(因此也可以包含資源的名稱)。
3、在調用API函數時,類似含有窗口句柄參數(HANDLE)的原型函數,應顯示地聲明為IntPtr類型。
4、IntPtr類型對多線程操作是安全的。
5、int 和IntPtr互轉
int i=1;
IntPtr p=new IntPtr(i);
int ch_i=(int) p;
6、IntPtr和string互轉
string str="a";
IntPtr p=Marshal.StringToHGlobalAnsi(str);
string s=Marshal.PtrToStringAnsi(p);
Marshal.FreeHGlobal(p);