我有一个在 C++ Builder 2010 中构建的应用程序。一些配置值存储在注册表中,作为 32 位应用程序,一些值保存在Wow6432Node键下。
无论我是在 WinXP、Win7、Win8... 32 位还是 64 位上运行应用程序,这都像发条一样工作。该应用程序由 TeamCity 下的 Windows 7 64 位构建代理构建。
然后突然间它就停止了工作。没有对代码加载注册表项进行任何更改。在四处挖掘之后,我通过强制注册表对象的访问为KEY_WOW64_32KEY来使其工作。
但这似乎很麻烦,必须在任何地方做。首先尝试读取,如果没有找到值,请尝试签入哇键。自上次工作以来,我已经查看了所有代码更改,并且没有任何内容涉及注册表加载,如果某些奇怪的设置被错误地启用但没有好处,我尝试恢复.cbproj文件。
此外,在也是 Win 7 64 位机器的开发机器上本地构建它可以正常工作。
到底会发生什么?这就像魔术:)