2010-06-28 7 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이되고 삭제하지는 않습니다.

그렇기 때문에 키 값 삭제에 적용됩니다.