ホームページ >バックエンド開発 >C++ >32 ビット アプリケーションはどのようにして 64 ビット レジストリ キーにアクセスできますか?

32 ビット アプリケーションはどのようにして 64 ビット レジストリ キーにアクセスできますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-04 13:28:39442ブラウズ

How Can a 32-bit Application Access 64-bit Registry Keys?

32 ビット アプリケーションから 64 ビット レジストリ キーにアクセスする

64 ビット OS で実行すると、OpenSubKey() が失敗する場合があるregedit.exe で表示されるレジストリ キーへの参照を返します。この不一致は、32 ビット アプリケーションがデフォルトで目的のブランチではなく HKLMSoftwareWow6432Node ブランチを検査するために発生します。

64 ビット バージョンのレジストリにアクセスするには、RegistryView パラメーターを明示的に指定します。

using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
using (var key = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"))
{
   // The key now points to the 64-bit subkey branch
}

この手法により、OpenSubKey() 関数が適切なレジストリ ブランチをターゲットにすることが保証されます。対象のサブキーへのアクセスを提供します。

4.0 より前の .NET バージョンでは、32 ビット アプリケーションから 64 ビット キーを操作するために P/Invoke を利用する必要がある場合があります。このアプローチの詳細なガイドは、http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or で参照できます。 -その逆/

以上が32 ビット アプリケーションはどのようにして 64 ビット レジストリ キーにアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。