RegOpenKey / RegOpenKeyEx возвращает 2 (файл не найден) в Windows 7, в то время как ключ существует - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь прочитать значение из HKEY_CURRENT_USER \ Software \ Classes в Windows 7 как обычный пользователь, и, хотя ключ существует, я получаю ошибку. Оба кода ниже не имеют успеха:

l = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Classes", 0, KEY_READ, &hKey);

// RegOpenKeyEx doesn't success either
l = RegOpenKey(HKEY_CURRENT_USER, L"Software\\Classes", &hKey);

Этот код находится в dll , вызываемом приложением, которое делает много вещей (я не знаю всего, что оно делает).

Однако простое приложение с RegOpenKey на том же компьютере с той же учетной записью отлично работает ...

Может кто-нибудь сказать мне, что может вызвать проблемы и различия между ними? Тестовое приложение написано на c ++, а dll написано на c.

РЕДАКТИРОВАТЬ: Проблема решена, просто удалив "L" перед L "Software \ Classes" ...

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Вероятно, код выполняется от имени другого пользователя или его текущий пользователь не синхронизирован с кэшированным разделом реестра для процесса.См. RegOpenCurrentUser .

0 голосов
/ 02 марта 2012

Я решил проблему, передав функции «Software \ Classes» вместо L «Software \ Classes».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...