Сохранить настройки приложения MFC CArchive

У меня есть несколько настроек в приложении, которые я хочу сохранить при их изменении.
есть флажок:

void CL2HamsterDlg::OnBnClickedCheckAutoselect()
{
CFile theFile( pFileName1,CFile::modeWrite );
CArchive ar(&theFile, CArchive::store);
if(c_Acheck.GetCheck()==BST_UNCHECKED)
a = 0;
else
a = 1;
ar << a;
ar.Close();
theFile.Close();
}

и поле со списком с кнопкой сохранения (при нажатии сохранить сохраняет содержимое со списком):

void CL2HamsterDlg::OnClickedButtonLoad()
{
Value.GetWindowText(str);
CFile theFile( pFileName1,CFile::modeWrite );
CArchive ar(&theFile, CArchive::store);
ar << Savename;
ar.Close();
theFile.Close();
}

При инициализации приложение должно загрузить эти настройки и установить их:

BOOL CL2HamsterDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
pFileName1 = "settings.dat";
theFile.Open( pFileName1,CFile::modeRead );
CArchive ar(&theFile, CArchive::load);
ar >> a;
ar.Close();
theFile.Close();
if(a == 1)
c_Acheck.SetCheck(BST_CHECKED);
return TRUE;
}

но все время, когда те или иные настройки меняются, программа перезаписывает файл.

пс. Я не хочу использовать реестр (по причине переносимости)

мой вопрос, как я могу писать и читать настройки в порядке сериализации?

какие доступны альтернативные способы сохранения настроек программы? (пожалуйста, с примером)

0

Решение

Вам нужно записывать все настройки в архив каждый раз, когда что-то меняется. Соответственно, загружайте все настройки из файла архива при запуске программы.

1

Другие решения

Других решений пока нет …