|
レジストリに記録するには、まずCXXApp::InitInstanceで記録する場所を指定します。この作業を省略するとINIファイルに記録されます。これ以降のデータの読み書きはどちらの場合も同じです。
BOOL CXXApp::InitInstance()
{
AfxEnableControlContainer();
// 標準的な初期化処理
// もしこれらの機能を使用せず、実行ファイルのサイズを小さくしたけ
// れば以下の特定の初期化ルーチンの中から不必要なものを削除して
// ください。
SetRegistryKey("Application\\Sample"); //ここだけ追加します
・・・以下省略
上記の例の場合、HKEY_CURRENT_USER\Software\Application\Sample\プロジェクト名\に記録されます。
(INIファイルに記録する場合は関係ありません)
INIファイルに記録する場合は、Windowsフォルダ\プロジェクト名.INIに記録されます。 <データの書き込み>
文字列を書き込む場合はWriteProfileString、数値を書き込む場合はWriteProfileIntを使います。3番目の引数には、書き込む値を設定します。下記の例のイメージとしては、Testという名前のフォルダにあるdata1というファイルの内容にTESTという値を書き込むような感じです。
CWinApp* pApp = AfxGetApp();
pApp->WriteProfileString("Test", "data1",
"TEST");
pApp->WriteProfileInt("Test", "data1", 100);
<データの読み込み>
文字列を読み込む場合はGetProfileString、数値を読み込む場合はGetProfileIntを使います。3番目の引数には、キーが存在しなかった場合に返すデフォルト値です。
CWinApp* pApp = AfxGetApp();
CString str = pApp->GetProfileString("Test", "data1", "");
int n = pApp->GetProfileString("Test",
"data1", 0);
|