0

私はc++win32アプリケーションを開発していて、それに永続ストレージを実装したいと思います。ファイルシステム、データベース、またはレジストリを使用できることはわかっていますが、以下を保存するための最良の方法は何でしょうか。

 boolean
 unsigned int
 wchar_t [256]
 boolean [15]

アプリケーションが起動およびシャットダウンしたときにのみ、ストレージから読み取り/書き込みを行う必要があります。

これはユーザーレベルのアプリケーションであり、データはユーザーごとに保存する必要があります。アプリケーションの設定(トラックバーの位置、一部の設定、実行回数など)を保存したいので、設定をインポート/エクスポートしたり、トラブルシューティングを行ったりする必要はありません。

このタイプのデータに最も適切なストレージ方法はどれですか?

4

3 に答える 3

4

Windowsで設定を書く最も簡単な方法は、レジストリに設定することだと思います。ユーザー固有の設定については、HKEY_CURRENT_USERセクションに書き込みます。Win32APIのレジストリアクセス関数の完全なリストは次のとおりです

アプリケーションを他のプラットフォームに移植する必要があると考える場合は、よりクロスプラットフォームに適したソリューションを検討することをお勧めします。私のアプリで行うことは、ユーザーのホームディレクトリに設定ファイルを使用してUnixの方法で設定を書き込むことです。これには、必要に応じて編集できるテキストベースの形式を使用できるという追加の利点があります。たとえば、WritePrivateProfileStringまたは同様のAPI呼び出しを使用して由緒ある.ini形式で書き込むことができます。Windowsでは、アプリケーションはホームディレクトリに直接設定ファイルを書き込まないことに注意してください。これらのファイルが通常配置される「AppData」ユーザー固有のフォルダがあります。SHGetFolderPath関数を呼び出すことにより、このフォルダーのパスを取得できます。

于 2011-09-25T22:40:15.810 に答える
3

最も簡単な解決策は、ユーザーのAPPDATAパスの下にある.iniファイルに情報を保存することです。

于 2011-09-25T22:37:55.397 に答える
0

シリアル化/protobufferを検討してください:http ://code.google.com/p/protobuf/ ここでアプリケーションのユーザー固有のパスに書き込みます

于 2011-09-25T22:42:45.713 に答える