/// <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(); }
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); */ }