2010-06-28 155 views
0

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

回答

2

您的代碼不起作用。刪除索引0時,下一項變爲索引0,並且不刪除該索引。

所以是的,它適用於刪除鍵值。