| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Путаница с реестром |
| Автор: scroollocker 27.6.2013, 11:24 | ||||
| Всем привет! Столкнулся с проблемой, связанной с реестром Windows x64. У меня есть файл реестра akk.reg:
Я добавляю этот код в реестр, запусканием файла. Теперь мне нужно его считать из реестра. Открываю с помощью:
На 32битной Windows все работает, на 64 не хочет читать данные. Возникает вопрос, как мне прочитать данные, которые занесены в реестр с помощью reg-файла? Где они хранятся? в 32битной ветке, или в 64... В общем путаница у меня |
| Автор: DarthTon 27.6.2013, 12:07 | ||
Полагаю что-то не так с вашим вызовом RegQueryValueEx, т.к. у меня всё работает. При использовании reg файла через контекстное меню, запись по-умолчанию добавляется в 64-битную ветку.
|
| Автор: scroollocker 27.6.2013, 12:19 | ||||
| Компилирую программку в 32 винде. Использую грубо такой код:
Пробовал делать
Использовать вместо KEY_READ - KEY_ALL_ACCESS... А какое значение прописано в KEY_WOW64_64KEY? может еще дело в нем |
| Автор: DarthTon 27.6.2013, 12:39 |
| Строки в реестре хранятся в юникоде, используйте wchar_t для получения строковых данных. А вообще, что конкретно не работает? Что возвращает функция RegQueryValueEx? |
| Автор: scroollocker 28.6.2013, 21:18 |
| Все решилось заменой RegCreateKeyEx на RegOpenKeyEx. Сразу все прочитало, все заработало. Как я понял, он создавал ключ в ветке реестра для 32 битных программ и оттуда читал, хоть и стоял флаг KEY_WOW64_64KEY, а там пусто. Хотя может я неправильно и понял DarthTon Спасибо вам, за надежду, что код у вас заработал. =) Без этой надежды не стал бы эксперементировать |