Как правильно использовать функцию RegEnumKeyExA
Я использую следующий код
#include <windows.h>
int main()
{
HKEY key;
long op = RegOpenKeyA(HKEY_CURRENT_USER, "Software", &key);
if(op == ERROR_SUCCESS)
{
char* name = new char[MAX_PATH];
memset(name, 0, MAX_PATH);
DWORD nameSize = 0;
for(int i = 0;;i++)
{
op = RegEnumKeyExA(key, i, name, &nameSize, 0, 0, 0, 0);
printf("%s\n", name);
if(op == ERROR_NO_MORE_ITEMS)
{
break;
}
if(op != ERROR_SUCCESS)
{
printf("stop");
break;
}
}
}
}
В самом первом проходе у меня завершается цикл с выводом в консоль stop в переменную name после RegEnumKeyExA ничего не попадает, ровно как и nameSize равен нулю вопрос что я не так делаю для вывода подразделов реестра?
Ответы (1 шт):
Автор решения: Anunak Nibirovich
→ Ссылка
Перед самим вызовом RegEnumKeyExA укажите размер буфера, куда ложатся данные, например:
DWORD nameSize = MAX_PATH