public static void Main()
    {
        var mc1 = new ManagedClass();
        var mc2 = new ManagedClass();
        var mc3 = new ManagedClass();

        var cwt = new ConditionalWeakTable <ManagedClass, ClassData>();

        cwt.Add(mc1, new ClassData());
        cwt.Add(mc2, new ClassData());
        cwt.Add(mc3, new ClassData());

        var wr2 = new WeakReference(mc2);

        mc2 = null;

        GC.Collect();

        ClassData data = null;

        if (wr2.Target == null)
        {
            Console.WriteLine("No strong reference to mc2 exists.");
        }
        else if (cwt.TryGetValue(mc2, out data))
        {
            Console.WriteLine("Data created at {0}", data.CreationTime);
        }
        else
        {
            Console.WriteLine("mc2 not found in the table.");
        }
    }
Beispiel #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("2 + 3 = {0}", FunctionName(2, 3));

            ManagedClass mc = new ManagedClass();

            Console.WriteLine("1 + 4 = {0}", mc.Add(1, 4));
        }
        public MainWindow()
        {
            InitializeComponent();
             var x = ManagedClass.add(1, 2);

             var managedClass = new ManagedClass();
             var y = managedClass.getX();
             var z = managedClass.Count("asdf");
        }
        private async Task <byte[]> ConvertWithSelectedMode(ConvertMode convertMode, byte[] loadImageByteArr)
        {
            ManagedClass mc = new ManagedClass();

            if (convertMode == ConvertMode.Normally)
            {
                ToMainColors(loadImageByteArr);
            }
            if (convertMode == ConvertMode.Asynchronously)
            {
                await ToMainColorsAsync(loadImageByteArr);
            }
            if (convertMode == ConvertMode.UsingCpp)
            {
                mc.ToMainColorsCPP(loadImageByteArr);
            }
            return(loadImageByteArr);
        }
        public void Init(VltRootRecord rootRecord, TableEndBlock teb, BinaryReader br)
        {
            var position = teb.InfoDictionary[rootRecord.Position].Address2;

            br.BaseStream.Seek(position, SeekOrigin.Begin);

            _managedClasses = new Dictionary <uint, ManagedClass>(rootRecord.NumEntries);

            for (var i = 0; i < rootRecord.NumEntries; ++i)
            {
                var mc = new ManagedClass
                {
                    Value   = BinaryUtil.ReadNullTerminatedString(br),
                    Unknown = rootRecord.Hashes[i]
                };

                mc.Hash = JenkinsHash.getHash32(mc.Value);

                _managedClasses.Add(mc.Hash, mc);
            }
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            var mc = new ManagedClass();

            action actionDelegateInstance = PrintCoordinates;
            var    act = Marshal.GetFunctionPointerForDelegate(actionDelegateInstance);

            function functionDelegateInstance = SendValue;
            var      func = Marshal.GetFunctionPointerForDelegate(functionDelegateInstance);

            Task.Run(() => { mc.Run(act, func); });

            int j = 0;

            while (true)
            {
                //mc.ChangeValue(j);
                Console.WriteLine("Value from Lib: " + mc.GetValue());
                j++;
                Thread.Sleep(3000);
            }
        }
        /// <summary>
        /// Gets the UClass address for the given UObject derived type (defined in managed code)
        /// </summary>
        /// <param name="type">The UObject derived type</param>
        /// <returns>The address of the UClass for the given type</returns>
        public static IntPtr GetClassAddress(Type type)
        {
            ManagedClass managedClass = GetManagedClass(type);

            return(managedClass != null ? managedClass.Address : IntPtr.Zero);
        }
Beispiel #8
0
 protected bool IsExcludedClass(ManagedClass @class)
 {
     return(IsExcludedClass(@class.Native));
 }
Beispiel #9
0
 static void Main(string[] args)
 {
     Console.WriteLine(ManagedClass.ManagedFunction("P1", 2));
 }
 protected bool IsExcludedClass(ManagedClass @class)
 {
     return IsExcludedClass(@class.Native);
 }