現在Windowsのレジストリにすべての設定(ある種のアドレスを含む)を格納している、かなり大きなC++アプリケーション(Windowsでは、他のプラットフォームは計画していません)があります。設定を保存するためのベストプラクティス
ユーザーがレジストリ内のエントリを変更するのが困難なため、時にはこれは不便です。私は設定をバージョン管理したいので、設定は常に現在のコードと一致します。現時点では、reg-fileをバージョンアップしていますが、すべてのregファイルがターゲットマシンに追加されているかどうかはわかりません。 C#ではapp.configでデフォルト値を定義できますが、既存の設定は上書きしません。このようなメカニズムやライブラリがC++に存在するかどうかはわかりません。
私は、次の「機能」を持っているしたいと思います:
- 設定は、更新時にのみ新しい設定をのことを確認してください。ターゲット・マシン上の
- シンプルな更新(ユーザーによって行うことができます)
- をバージョン管理することができます既存の設定がデフォルト値で上書きされない
- ユーザーの設定が単純に変更される
- Win XPおよびWin 7で同じワークフロー
限り、私はそれを見るように、Windows上の設定を保存するための3つの可能性があります
- レジストリ
- iniファイル
- XMLファイル、当社の
1つのアプリケーションだけスイートは現時点でQtを使用していますが、Boostは利用可能です。
アドレスについては、いくつかの種類のXMLアドレス帳に入れますが、その他の設定についてはわかりませんが、何がベストプラクティスですか。
を掲載し、それを変換し、私は他の選択肢をお勧めします:YAML/JSONを人間のために読み込み可能な形式で、単純な埋め込みのためのSQLite。 iniファイルに関しては、[Boostでiniファイルを解析する方法](http://stackoverflow.com/questions/6175502/how-to-parse-ini-file-with-boost)に興味があるかもしれません。 –
Boost/iniファイルの場合は+1してください。 – DevSolar
複数の包含層が必要な場合は、XML/JSONファイルを使用します。それ以外の場合は、INIが最も簡単な方法です。 – Morwenn