예제 #1
0
            public static void FreeManagedPtr_inner(System.IntPtr ptr)
            {
                Array_float_Struct obj = (Array_float_Struct)Marshal.PtrToStructure(ptr, typeof(Array_float_Struct
                                                                                                ));

                if (obj._owner != 0x972f3813)
                {
                    throw new System.InvalidOperationException();
                }
            }
예제 #2
0
            public static void MarshalOut(System.IntPtr ptr, float[] arg)
            {
                Array_float_Struct obj = (Array_float_Struct)Marshal.PtrToStructure(ptr, typeof(Array_float_Struct
                                                                                                ));

                if (obj.length != arg.Length)
                {
                    throw new System.InvalidOperationException();
                }
                throw new System.InvalidOperationException();
            }
예제 #3
0
            public static void MarshalIn(System.IntPtr ptr, float[] arg)
            {
                Array_float_Struct obj = new Array_float_Struct();

                obj._owner = 0x972f3813;
                obj.length = arg.Length;
                {
                    obj.ptr = ptr + XobotOS.Runtime.MarshalGlue.Array_float_Helper.NativeSize;
                    Marshal.Copy(arg, 0, obj.ptr, arg.Length);
                }
                Marshal.StructureToPtr(obj, ptr, false);
            }
예제 #4
0
            public static float[] NativeToManaged(System.IntPtr ptr)
            {
                if (ptr == System.IntPtr.Zero)
                {
                    return(null);
                }
                Array_float_Struct obj = (Array_float_Struct)Marshal.PtrToStructure(ptr, typeof(Array_float_Struct
                                                                                                ));

                float[] arg = new float[obj.length];
                if (obj.length != arg.Length)
                {
                    throw new System.InvalidOperationException();
                }
                Marshal.Copy(obj.ptr, arg, 0, obj.length);
                return(arg);
            }
예제 #5
0
            public static Sharpen.INativeHandle GetPinnedPtr(float[] arg)
            {
                if (arg == null)
                {
                    return(null);
                }
                PinnedHandle       pinned = new PinnedHandle();
                Array_float_Struct obj    = new Array_float_Struct();

                obj._owner = 0x337b4904;
                obj.length = arg.Length;
                {
                    pinned.handle_array_ptr = GCHandle.Alloc(arg, GCHandleType.Pinned);
                    obj.ptr = pinned.handle_array_ptr.AddrOfPinnedObject();
                }
                pinned.handle = GCHandle.Alloc(obj, GCHandleType.Pinned);
                pinned.ptr    = pinned.handle.AddrOfPinnedObject();
                return(pinned);
            }
예제 #6
0
			public static Sharpen.INativeHandle GetPinnedPtr(float[] arg)
			{
				if (arg == null)
				{
					return null;
				}
				PinnedHandle pinned = new PinnedHandle();
				Array_float_Struct obj = new Array_float_Struct();
				obj._owner = 0x337b4904;
				obj.length = arg.Length;
				{
					pinned.handle_array_ptr = GCHandle.Alloc(arg, GCHandleType.Pinned);
					obj.ptr = pinned.handle_array_ptr.AddrOfPinnedObject();
				}
				pinned.handle = GCHandle.Alloc(obj, GCHandleType.Pinned);
				pinned.ptr = pinned.handle.AddrOfPinnedObject();
				return pinned;
			}
예제 #7
0
			public static void MarshalIn(System.IntPtr ptr, float[] arg)
			{
				Array_float_Struct obj = new Array_float_Struct();
				obj._owner = 0x972f3813;
				obj.length = arg.Length;
				{
					obj.ptr = ptr + XobotOS.Runtime.MarshalGlue.Array_float_Helper.NativeSize;
					Marshal.Copy(arg, 0, obj.ptr, arg.Length);
				}
				Marshal.StructureToPtr(obj, ptr, false);
			}