public static string String(IntPtr pointer) { if(pointer != IntPtr.Zero) { return Marshal.PtrToStringAnsi(pointer); // FIXME why ANSI? why not Uni? } else { return null; } }