Удаление значений ключа реестра - PullRequest
0 голосов
/ 28 июня 2010

В MSDN говорится, что RegEnumValue не следует использовать при вызове функции, которая изменяет перечисляемые ключи реестра.

Так это же относится и к удалению значений ключа реестра?

Как этот кодделает:

if (RegOpenKeyEx(m_hkey,m_path.c_str(),0,KEY_ALL_ACCESS,&key) == ERROR_SUCCESS)
 {
  bool error=false;
  idx=0;
  while (RegEnumValue(key,idx,name,&namesize,NULL,NULL,NULL,NULL) == ERROR_SUCCESS && !error)
  {
   error=(RegDeleteValue(key,name)!=ERROR_SUCCESS);
   idx++;
  }
  RegCloseKey(key);
 }

1 Ответ

2 голосов
/ 28 июня 2010

Ваш код не работает.Когда вы удаляете индекс 0, следующий элемент становится индексом 0, и вы не удаляете его.

Так что да, это относится к удалению значений ключа.

...