Почти все функции Windows API при сбое устанавливают более подробный код ошибки, который вы можете получить, вызвав GetLastError()
для получения более подробной информации.Вы должны вызывать это после сбоя вызова RegOpenKey()
.
В вашем примере RegOpenKey()
, вероятно, завершается с ошибкой отказа в доступе.RegOpenKey()
открыть раздел реестра с полным доступом для чтения / записи / удаления.Обычный пользователь в Windows 7 не имеет доступа на запись или удаление в HKLM, поэтому RegOpenKey()
завершится ошибкой.
Вместо этого следует использовать RegOpenKeyEx () , что позволит указать только для чтениядоступ, как показано ниже.
RegOpenKeyEx(HKEY_LOCAL_MACHINE, subkey, 0, KEY_READ, &hKey)
PS.Задавая вопрос, подобный приведенному выше, вы должны более подробно описать, как происходит сбой кода.В приведенном выше примере вы должны указать, какой вызов строки / функции не удался.Например, «Когда я использую этот код, вызов RegOpenKey не выполняется.