Риски использования KEY_WOW64_64KEY в 32-битном приложении - PullRequest
0 голосов
/ 07 ноября 2011

В настоящее время у нас есть 32-битное приложение, которое требует, чтобы различные пары ключ / значение были загружены из реестра перед использованием.

Ранее мы выполнили это, загрузив .reg как часть установки.При запуске в 64-битной Windows компоненты .reg попадают в 64-битное хранилище, но наше 32-битное приложение выглядит в 32-битном хранилище.

Я думал об использовании KEY_WOW64_64KEY , чтобы заставить наше 32-битное приложение всегда использовать 64-битное хранилище, однако этот ответ советует против этого.Тогда я подумал, что мы можем изменить файл .reg так, чтобы он указывал на 32-битное хранилище, но комментарий к этому ответу не советует предполагать, что ключ всегда будет называться "Wow6432Node"

какой-либо предпочтительный способ сделать это (кроме миграции всего приложения на 64-разрядную версию)?Каковы риски 32-разрядного приложения, использующего 64-разрядное хранилище?

1 Ответ

1 голос
/ 13 ноября 2011

Пока вы не передаете дескриптор HKEY функциям, не относящимся к Reg *, которые ожидают x86 == собственный реестр, я не думаю, что есть какие-либо риски. (Перенаправление файловой системы, с другой стороны, не зависит от дескриптора и может вызвать проблемы, если подфункция вызывает LoadLibrary или CoCreateInstance и т. Д.)

Если использование KEY_WOW64_64KEY кажется слишком хакерским, почему бы не установить (32-битный) установщик для записи в реестр вместо использования файлов .reg? Единственным недостатком этого является то, что если в будущем вы создадите приложение для x64, оно не поделится настройками с версией x86. (Это может быть хорошо или плохо)

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