public static unsafe IList <string> GetString(IntPtr device, AlcGetStringList param) { List <string> list = new List <string>(); byte * numPtr = (byte *)Alc.GetStringPrivate(device, (AlcGetString)param).ToPointer(); for (string str = Marshal.PtrToStringAnsi(new IntPtr((void *)numPtr)); !string.IsNullOrEmpty(str); str = Marshal.PtrToStringAnsi(new IntPtr((void *)numPtr))) { list.Add(str); numPtr += str.Length + 1; } return((IList <string>)list); }
public static string GetString(IntPtr device, AlcGetString param) { return(Marshal.PtrToStringAnsi(Alc.GetStringPrivate(device, param))); }