public static bool Init(UCoreStartParam param, out string errMsg) { Instance = new UCoreStart(); if (!Directory.Exists(param.SessionFolder)) { errMsg = string.Format("session directory ('{0}') not found.", param.SessionFolder); return(false); } string logFilePath = Path.Combine(param.SessionFolder, param.LogFile); Logging.Instance = new Logging(); if (!Logging.Instance.Init(logFilePath, param.MsgBoxHandler, param.ConfirmHandler)) { errMsg = string.Format("logging init failed ('file={0}').", logFilePath); return(false); } LuaRuntime.Instance = new LuaRuntime(); if (!LuaRuntime.Instance.Init(param.LuaBootstrapFile)) { errMsg = string.Format("lua init failed ('lua_bootstrap_file={0}').", param.LuaBootstrapFile); return(false); } Instance.SessionFolder = param.SessionFolder; errMsg = ""; return(true); }
public bool InitSession() { DateTime dt = DateTime.Now; string date = dt.ToString("yyyy-MM-dd"); string fulltime = date + dt.ToString("-HH-mm-ss"); string sessionFolder = Path.Combine(Properties.Settings.Default.TempFolderName, date, fulltime); try { if (!Directory.Exists(sessionFolder)) { Directory.CreateDirectory(sessionFolder); } } catch (Exception e) { MessageBox.Show(string.Format("临时目录('{0}')初始化失败。 \n\n'{1}'\n\n按 'OK' 退出程序。", sessionFolder, e.Message)); return(false); } ucore.UCoreStartParam p = new ucore.UCoreStartParam(); p.SessionFolder = sessionFolder; p.LogFile = Properties.Settings.Default.LogFilename; p.LuaBootstrapFile = Properties.Settings.Default.LuaBootstrap; p.MsgBoxHandler = (title, msg) => { MessageBox.Show(msg, title); }; p.ConfirmHandler = (title, msg) => { return(MessageBox.Show(msg, title, MessageBoxButtons.OKCancel) == DialogResult.OK); }; string errMsg; if (!ucore.UCoreStart.Init(p, out errMsg)) { MessageBox.Show(string.Format("ucore init failed. \n\n Detail: {0} \n\n 按 'OK' 退出程序。", errMsg)); return(false); } UserPreference.Instance.Init(Path.Combine(Properties.Settings.Default.TempFolderName, Properties.Settings.Default.UserPrefFile)); Logging.Instance.Log("Log started. '{0}'", Logging.Instance.GetLogFilePath()); return(true); }