Пример #1
0
        private void Merge(CommandUtil comUtil, List <TranslateUnit3RD> units)
        {
            string[] filenames = comUtil.Extract(m_peFileName);
            string   menurc = null, stringrc = null, dialogrc = null, versionrc = null;
            string   menures = null, stringres = null, dialogres = null, versionres = null;

            try
            {
                // menu.rc
                menurc  = filenames[0];
                menures = menurc.Substring(0, menurc.LastIndexOf(".")) + ".res";
                MergeOneFile(comUtil, units, menurc, menures, TranslateUnitType.MenuType, m_peFileName, m_newFileName0);

                // string.rc
                stringrc  = filenames[1];
                stringres = stringrc.Substring(0, stringrc.LastIndexOf(".")) + ".res";
                MergeOneFile(comUtil, units, stringrc, stringres, TranslateUnitType.StringType, m_newFileName0, m_newFileName1);

                // dialog.rc
                dialogrc  = filenames[2];
                dialogres = dialogrc.Substring(0, dialogrc.LastIndexOf(".")) + ".res";
                MergeOneFile(comUtil, units, dialogrc, dialogres, TranslateUnitType.DialogType, m_newFileName1, m_newFileName2);

                // version.rc
                versionrc  = filenames[3];
                versionres = versionrc.Substring(0, versionrc.LastIndexOf(".")) + ".res";
                MergeOneFile(comUtil, units, versionrc, versionres, TranslateUnitType.VersionType, m_newFileName2, m_newFileName3);

                File.Copy(m_newFileName3, m_peFileName, true);
            }
            finally
            {
                if (!AppConfig.KeepTempFiles)
                {
                    DeleteFile(menurc);
                    DeleteFile(stringrc);
                    DeleteFile(dialogrc);
                    DeleteFile(versionrc);

                    DeleteFile(menures);
                    DeleteFile(stringres);
                    DeleteFile(dialogres);
                    DeleteFile(versionres);

                    DeleteFile(m_newFileName0);
                    DeleteFile(m_newFileName1);
                    DeleteFile(m_newFileName2);
                    DeleteFile(m_newFileName3);
                }
            }
        }
Пример #2
0
        private List <TranslateUnit3RD> Extract(CommandUtil comUtil)
        {
            List <TranslateUnit> resultSelf = ParsePEFile();

            string[] filenames = comUtil.Extract(m_peFileName);
            List <TranslateUnit3RD> result = new List <TranslateUnit3RD>();
            string menurc = null, stringrc = null, dialogrc = null, versionrc = null;

            try
            {
                // menu.rc
                menurc = filenames[0];
                ExtractOneFile(result, menurc, TranslateUnitType.MenuType, resultSelf);

                // string.rc
                stringrc = filenames[1];
                ExtractOneFile(result, stringrc, TranslateUnitType.StringType, resultSelf);

                // dialog.rc
                dialogrc = filenames[2];
                ExtractOneFile(result, dialogrc, TranslateUnitType.DialogType, resultSelf);

                // version.rc
                versionrc = filenames[3];
                ExtractOneFile(result, versionrc, TranslateUnitType.VersionType, resultSelf);
            }
            finally
            {
                if (!AppConfig.KeepTempFiles)
                {
                    DeleteFile(menurc);
                    DeleteFile(stringrc);
                    DeleteFile(dialogrc);
                    DeleteFile(versionrc);
                }
            }

            return(result);
        }