1、API声明(包括**参数)
int GetTheLastErrorA(char **pcError); int GetTheLastErrorW(wchar_t **pwError);
2、C#代码
using System.Runtime.InteropServices;
[DllImport("StringAW.dll", CallingConvention = CallingConvention.Winapi,
CharSet = CharSet.Ansi, EntryPoint = "GetTheLastErrorA")]
extern static int GetTheLastErrorA(ref IntPtr a);
[DllImport("StringAW.dll", CallingConvention = CallingConvention.Winapi,
CharSet = CharSet.Auto, EntryPoint = "GetTheLastErrorW")]
extern static int GetTheLastErrorW(ref IntPtr w);
IntPtr a = IntPtr.Zero;
GetTheLastErrorA(ref a);
String sa = Marshal.PtrToStringAnsi(a);
MessageBox.Show(sa);
IntPtr w = IntPtr.Zero;
GetTheLastErrorW(ref w);
String sw = Marshal.PtrToStringUni(w);
MessageBox.Show(sw);