Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(int argc, char** argv)
- {
- #if 0
- try
- {
- tbb::task_scheduler_init init(tbb::task_scheduler_init::default_num_threads()); // Explicit number of threads
- std::vector<boost::property_tree::ptree> xmls;
- xmls.resize(argc - 1);
- tbb::parallel_for(tbb::blocked_range<unsigned int>(1, argc), XmlParser(xmls, argc, argv));
- tbb::parallel_for(tbb::blocked_range<unsigned int>(0, xmls.size()), XmlProcessor(xmls));
- }
- catch(std::exception& e)
- {
- std::cerr << e.what() << std::endl;
- }
- catch(...)
- {
- std::cerr << "An unknown exception was thrown!" << std::endl;
- }
- #endif
- static CEterPackManager eterPack;
- SetLogLevel(2);
- OpenLogFile(true);
- OpenConsoleWindow();
- HANDLE hThread = GetCurrentThread();
- SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST);
- if (!parse(argc, argv))
- return EXIT_FAILURE;
- if (CEterPackManager::Instance().LoadArchive(wArchiveName))
- {
- CMappedFile mapFile;
- LPCVOID pData = nullptr;
- CFileBase writeFile;
- std::string exlist = "file_list.txt";
- std::ifstream ifs(exlist);
- if (!ifs.is_open())
- {
- TraceError("Can't open %s", exlist.c_str());
- return EXIT_FAILURE;
- }
- std::string line;
- while (std::getline(ifs, line))
- {
- if (CEterPackManager::Instance().GetFromPack(mapFile, line.c_str(), &pData)) {
- auto folderName = "unpacked/" + convert_from_wstring(wArchiveName) + '/';
- const auto& fileName = folderName + ReplaceAll(line, "d:/", "");
- inlinePathCreate(fileName.c_str());
- writeFile.Create(fileName.c_str(), CFileBase::FILEMODE_WRITE);
- writeFile.Write(pData, mapFile.Size());
- Tracenf("Extracted: %s -> %s", line.c_str(), fileName.c_str());
- }
- }
- writeFile.Destroy();
- ifs.close();
- }
- //CEterPackManager::instance().UnloadArchive(wArchiveName);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement