一、IntPtr 与 string互转
string StrVal= "test";
IntPtr p = Marshal.StringToHGlobalAnsi(StrVal);
string result= Marshal.PtrToStringAnsi(p);
//最后释放掉
Marshal.FreeHGlobal(init);
二、char*与string互转
string a = "hello";
char* aChar = (char*)System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(a).ToPointer();
string result = Marshal.PtrToStringAnsi((IntPtr)aChar);
三、char* 与 IntPtr互转
可以直接强制类型转换
IntPtr init = (IntPtr)aChar;
char* aChar = (char*)init;