Часто люди используют XML-файлы для хранения предпочтений, но они часто излишни (и на самом деле они не настолько удобочитаемы для людей).
Если ваши потребности легко удовлетворятся с помощью файла INI, выВозможно, вы захотите использовать Boost.Program_options , используя сервер синтаксического анализа файла конфигурации, который на самом деле записывает INI-подобные файлы, не проходя через устаревшие (и медленные!) API-интерфейсы, в то же время демонстрируя красивый интерфейс C ++.
Ключевая вещь, чтобы получить право, где написать такой файл конфигурации.Правильным местом обычно является подкаталог (называемый, например, как ваше приложение) каталога данных приложения пользователя;пожалуйста, пожалуйста, пожалуйста, не используйте его путь в вашем исполняемом файле , я видел достаточно сломанных приложений, которые не понимают, что профиль пользователя может отсутствовать в c:\Documents and settings\Username
.
Вместо этого вы можете получить путь к данным приложения, используя функцию SHGetFolderPath
с CSIDL_APPDATA
(или SHGetKnownFolderPath
с FOLDERID_RoamingAppData
, если вы нене теряйте совместимость с версиями Windows, предшествующими Vista, или даже просто расширяя переменную среды %APPDATA%
.
Таким образом, каждый пользователь сможет сохранить свои настройки, а вы не получителюбые ошибки, связанные с безопасностью при написании ваших предпочтений.