Я использую xml-синтаксический анализ дерева свойств для редактирования некоторых параметров своего приложения.
Я создал структуру default-settings
struct default_settings
{
std::string imPath;
std::string calPath;
std::string solPath;
void load(const std::string &filename);
void save(const std::string &filename,const std::string &image_path,const std::string &cal_path,const std::string &sol_path);
};
void default_settings::save(const std::string &filename,const std::string &image_path,const std::string &cal_path,const std::string &sol_path)
{
ptree pt;
pt.put("default.image-path", image_path);
pt.put("default.cal-path", cal_path);
pt.put("default.sol-path", sol_path);
write_xml(filename, pt);
}
void default_settings::load(const std::string &filename)
{
ptree pt;
read_xml(filename, pt);
imPath = pt.get<std::string>("default.image-path");
calPath = pt.get<std::string>("default.cal-path");
solPath = pt.get<std::string>("default.sol-path");
}
и я получаю доступ к переменным: imPath, calPath, .. и т. Д.
путем создания глобальной переменной в моем приложении default_settings DS
и вызывая их через эту переменную (ds.imPath)
Странно то, что он работает, когда загрузка выполняется один раз, но я получаю исключение
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::property_tree::xml_parser::xml_parser_error> > at memory location 0x0016bf54..
Что вы предлагаете?