2010-04-21 1 views
2

У меня есть dll, сделанная в cpp, которая пытается читать/записывать некоторые ключи реестра. Этот код отлично работает в Windows XP (32-разрядная среда), но он не работает в Windows 7 (64-разрядная среда).Ошибка функции RegQueryValueEx В Windows7

К ключам реестра, к которым относится приложение, относятся к общим ключам реестра. Эти ключи не входят в 32-битный кэш реестра (wow32 bit) или 64-битный кэш реестра.

Просьба представить ваши ценные материалы.

Заранее спасибо.

Jits

+0

Неудача как? Какую возвращаемую стоимость вы получите? –

ответ

1

, когда вы говорите "общий" вы имеете в виду, например, под HKLM? Разрешено писать только более высокие приложения для тех, кто работает в Windows 7 и Vista. Если это новость для вас, я предлагаю выполнить поиск в User Account Control или UAC.

+0

Да, конечно, как будто * RegQueryValueEx * был ** выписывает ** в реестр. –

+2

Да, конечно, когда в вопросе говорится: «пытается читать/писать некоторые ключи реестра». Я глупо думать, что код может их писать. –

0

Возможно, вы должны инициализировать значение «lpcbData», последнего параметра RegQueryValueEx.

1

Проверьте это: RegQueryValueEx Function

И это: Registry Key Security and Access Rights

ИМО вы должны проверить настройки доступа, которые используются для открытой клавиши. Удалите настройки, требующие повышенных привилегий, или запустите приложение в повышенном режиме.