private void DecompileThread() { onStartTask?.BeginInvoke(null, null); TaskResult = GCompWrapper.Decompile(ref Params); if (frm.Visible) { frm.BeginInvoke(new MethodInvoker(delegate { frm.Hide(); })); } onFinishDecompile?.BeginInvoke(null, null); }
static void Main(string[] args) { Application.EnableVisualStyles(); ConsoleHelper.CreateConsole(); Console.WriteLine("Версия GComp: {0}", GCompWrapper.GetVersion()); Params = GCompWrapper.SetDefaults(); Params.DirectoryName = @"SRC"; Params.CompoundFileName = @"1cv7.MD"; Params.CompoundType = GCompWrapper.CompoundTypes.meta_data; Params.LogType = GCompWrapper.LogType.STDout; Params.SaveVersion = GCompWrapper.BOOL.False; Params.Messaging = GCompWrapper.Verbose.real_deeds; Params.Language = GCompWrapper.Languages.Rus; Thread th = new Thread(formProgressor); th.Start(); Params.InfoMessage = WM_GCOMP_INFO; while (Params.hwndInfoReceiver == IntPtr.Zero) { Thread.Sleep(10); } Console.WriteLine("Разборка конфигурации... (Если ничего не выводится, значит измененных файлов нет.)"); Console.WriteLine("HWnd:{0} msg:{1}", Params.hwndInfoReceiver, Params.InfoMessage); GCompWrapper.Decompile(ref Params); Console.WriteLine("Разборка конфигурации завершена."); Console.WriteLine("Нажмите что-нибудь"); Console.ReadKey(); GCompWrapper.SaveSettings(ref Params); Console.WriteLine("Сборка конфигурации..."); Console.WriteLine("HWnd:{0} msg:{1}", Params.hwndInfoReceiver, Params.InfoMessage); GCompWrapper.Compile(ref Params); Console.WriteLine("Сборка конфигурации завершена."); Console.WriteLine("Нажмите что-нибудь"); Console.ReadKey(); Params = GCompWrapper.SetDefaults(); Params.DirectoryName = @"External Reports"; Params.CompoundFileName = @"Тест.ert"; Params.CompoundType = GCompWrapper.CompoundTypes.external_report; GCompWrapper.SaveSettings(ref Params); GCompWrapper.Decompile(ref Params); Console.WriteLine("Разборка внешнего отчета завершена."); Console.WriteLine("Нажмите что-нибудь"); Console.ReadKey(); GCompWrapper.Compile(ref Params); Console.WriteLine("Сборка внешнего отчета завершена."); Console.WriteLine("Нажмите что-нибудь"); Console.ReadKey(); Process.GetCurrentProcess().Kill(); }