2010-06-28 4 views
0

MSDN indique que RegEnumValue ne doit pas être utilisé lors de l'appel d'une fonction qui modifie les clés de registre en cours d'énumération.Suppression de valeurs de clé de registre

Est-ce que cela s'applique également à la suppression des valeurs de clé de registre?

Comme ce code ne:

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); 
} 

Répondre

2

Votre code ne fonctionne pas. Lorsque vous supprimez l'index 0, l'élément suivant devient l'index 0 et vous ne le supprimez pas.

Alors oui, cela s'applique à la suppression des valeurs de clé.

Questions connexes