Example #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            var chg = new CppHeaderGenerator();

            chg.Generate(new[]
            {
                typeof(PrimitiveOp).FullName,
                typeof(DataTypeEnum).FullName,
                typeof(IFactory).FullName,
            },
                         Console.Out);

            //GetProcedureFromNativeSide();
            SendProcedureToNativeSide();
            Console.ReadKey();
        }
Example #2
0
        private static void Test()
        {
            //SetDllDirectory(@"E:\reko\llvm\build\out\bin");

            TextWriter tw  = Console.Out;
            var        chg = new CppHeaderGenerator(tw);

            chg.Generate(new[]
            {
                typeof(PrimitiveOp).FullName,
                typeof(DataTypeEnum).FullName,
                typeof(IFactory).FullName,
            });

            Factory fac     = new Factory();
            var     factory = Marshal.GetIUnknownForObject(fac);
            var     iid     = new Guid("E40FFD0D-3019-4ADF-AC48-800F3ACFA360");
            IntPtr  ifac;
            var     hr = Marshal.QueryInterface(factory, ref iid, out ifac);

            Initialize(ifac);

            TestTypes();

#if TEST_LLVM
            var   bytes = new byte[30];
            ulong addr  = 0x00123400;
            bytes[0] = 0xC3;
            Initialize(ifac);
            SetupTarget("i386");
            Disasm(addr, bytes, 1);
#endif


            /*
             * Console.WriteLine(fac.stmts[0].ToString());
             * Debug.Print(fac.stmts[0].ToString());
             * Debug.Assert(fac.stmts.Count == 1);
             */
        }