У меня довольно большое приложение на C++ (в Windows, никаких других платформ запланировано), в котором в настоящее время хранятся все настройки (даже некоторые адреса) в реестре Windows.Рекомендации по сохранению настроек
Иногда это неудобно, поскольку у пользователей возникают трудности с изменением записей в реестре. Я бы хотел, чтобы настройки были версиями, поэтому настройки всегда соответствуют текущему коду. На данный момент мы обновляем reg-файлы, но вы никогда не уверены, если все рег-файлы были добавлены на целевые машины. С помощью C# вы можете определить значения по умолчанию в app.config, но не перезаписывать существующие настройки. Я не знаю, существует ли такой механизм или библиотека для C++.
Я хотел бы иметь следующую «особенность»:
- Настройки можно версионируется
- Простого обновления на целевых машинах (может быть сделано пользователем)
- Убедитесь, что обновление только новые настройки добавлены и никакие существующие настройки не будут перезаписаны значениями по умолчанию
- Простая смена настроек для пользователя
- Тот же рабочий процесс под Win XP и Win 7
Насколько я вижу, есть 3 возможности для хранения настроек Windows:
- реестра
- Ini файл
- XML файл
только одна заявка нашего В настоящее время пакет использует Qt, но Boost будет доступен.
Для адресов мы помещаем их в какую-то адресную книгу XML, но для других настроек мы не уверены, что лучше всего.
Я хотел бы предложить другие варианты: YAML/JSON для человека - удобный формат, SQLite для простой встраивания. Что касается 'ini' файлов, вы можете быть заинтересованы в [Как разобрать ini-файл с Boost] (http://stackoverflow.com/questions/6175502/how-to-parse-ini-file-with-boost). –
+1 для файлов Boost/ini, если вы можете KI, что SS. – DevSolar
Если вам нужно несколько уровней включений, я бы пошел на файлы XML/JSON. В противном случае ИНИ может быть самым простым решением. – Morwenn