Почему является OpenSubKey () возвратом пустого указателя в моем Windows 7 64-разрядная система?

Сделайте OpenSubKey () и другая Microsoft. Реестр Win32 функционирует пустой указатель возврата в 64-разрядных системах, когда 32-разрядные ключи реестра находятся под Wow6432node в реестре?

Я работаю над платформой поблочного тестирования, которая звонит в OpenSubKey () из библиотеки.NET.

Моя система разработки является Windows 7 64-разрядная среда с   Visual Studio 2008 SP1 и установленным Windows 7 SDK.

Приложение мы - поблочное тестирование, является 32-разрядным приложением, таким образом, реестр виртуализируется под HKLM\Software\Wow6432node. Когда мы звоним:

Registry.LocalMachine.OpenSubKey( @"Software\MyCompany\MyApp\" );

Пустой указатель возвращается, однако явно указывая для взгляда здесь работ:

Registry.LocalMachine.OpenSubKey( @"Software\Wow6432node\MyCompany\MyApp\" );

Из того, что я понимаю, что эта функция должна быть агностиком к 32-разрядным или 64-разрядным средам и должна знать для перехода к виртуальному узлу.

Еще более странный то, что тот же самый вызов в скомпилированной и установленной версии нашего приложения работает очень хорошо в той же системе и получает ключи реестра, необходимые для выполненного; которые также помещаются в HKLM\Software\Wow6432node.

Что мне делать?

23
задан Peter Mortensen 13 February 2015 в 02:01
поделиться

1 ответ

Похоже, ваш проект модульного тестирования компилируется в 64-разрядную версию. В настройках Compile вашего проекта модульного тестирования установите «Целевой ЦП» на x86 (вместо AnyCPU ).

22
ответ дан 29 November 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: