Exemplo n.º 1
0
        public static List<string> GetStringArray(udtStringArray array)
        {
            IntPtr elements = IntPtr.Zero;
            UInt32 elementCount = 0;
            if(udtGetStringArray(array, ref elements, ref elementCount) != udtErrorCode.None)
            {
                return null;
            }

            int elementSize = Marshal.SizeOf(typeof(IntPtr));

            var list = new List<string>();
            for(UInt32 i = 0; i < elementCount; ++i)
            {
                var address = Marshal.ReadIntPtr(elements, (int)i * elementSize);
                var element = Marshal.PtrToStringAnsi(address);
                list.Add(element ?? "N/A");
            }

            return list;
        }
Exemplo n.º 2
0
 private static extern udtErrorCode udtGetStringArray(udtStringArray arrayId, ref IntPtr array, ref UInt32 elementCount);