9

我一直在关注Forger 的 win32 API 教程,我决定menu_one.rc在 VS2010 中打开文件以查看其内容,但出现此错误:

错误(imgur.com)

我已经仔细检查了这两个位置,但实际上两个文件都不存在。我拥有的 rcdll.dll 的唯一副本位于:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\rcdll.dll and 
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\rcdll.dll

我尝试过修复安装 Windows SDK,但这并没有解决问题。我该怎么办?

4

3 回答 3

9

该线程提到了一个注册表问题:

我已经能够在安装了 Windows 7 SP1 64 位和 VS2010 Sp1 的电脑上重现该问题。

我必须修改以下注册表项

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows]
"CurrentVersion"="7.0"
"CurrentInstallFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows]
"CurrentVersion"="7.0.30319"
"CurrentInstallFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\"

下面有2把钥匙

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows]

哪个是

v7.0
v7.0A

我删除了 v7.0 及其所有子项。问题就解决了。

于 2012-05-26T22:00:13.627 回答
6

因为我在 v8.0A 上运行,所以我有点担心更改注册表,但我可以通过简单地将 rcdll.dll 从以前的版本复制到错误消息中列出的目录中来修复错误。

于 2014-07-09T20:44:07.843 回答
1

VonC 的回答很有帮助,但就我而言,它并没有解决问题。还有另一个注册表项需要更改。

为了找到那个键,我搜索了regeditv6.0A因为那是我的错误对话框路径中的版本。
对话路径是C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\rcdll.dll

找到包含的密钥v6.0A后,我将路径替换为我机器上的路径:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

我还将版本字符串更新为v7.0A7.0.30319取决于原始值是什么。我在搜索结果的子键中发现了一些版本字符串,因此我也在那里应用了更改。

在我的机器上,Visual Studio 使用的密钥位于:

[HKEY_USERS\S-1-5-21-627493193-880714491-1605132347-6179\Software\Microsoft\Microsoft SDKs\Windows]
于 2015-02-26T22:24:34.927 回答