在64位操作系统上找不到32位应用程序的注册表项

时间:2014-03-26 07:34:59

标签: registry c++builder wow64 c++builder-2010

我有一个在C ++ Builder 2010中构建的应用程序。一些配置值存储在注册表中,并且是32位应用程序,某些值保存在 Wow6432Node 键下。

无论我是在WinXP,Win7,Win8 ...... 32还是64位上运行应用程序,这都像钟表机构一样工作。该应用程序由TeamCity下的Windows 7 64位构建代理构建。

然后突然间它停止了工作。没有对代码加载注册表项进行任何更改。在挖掘之后,我通过强制注册表对象的 Access KEY_WOW64_32KEY 来使其工作。

但是,到处做这件事似乎相当麻烦。首先尝试阅读,如果找不到值,请尝试检查键。我查看了所有代码更改,因为它上次工作,没有触及注册表加载,我已经尝试恢复 .cbproj 文件,如果某些奇怪的设置被错误启用但没有好处。

此外,在dev机器本地构建,也是Win 7 64位机器,它工作正常。

究竟会发生什么?这就像魔术:)

1 个答案:

答案 0 :(得分:0)

KEY_WOW64_32KEY仅适用于64位进程需要访问32位密钥,或者32位进程需要访问远程64位计算机的32位注册表时。这让我想知道你的项目是否正在编译64位而不是32位,就像你期望的那样。运行应用程序时,请检查“任务管理器”中是否实际是32位或64位进程。

相关问题