我一直在关注theForger's win32 API tutorial,我决定从VS2010中打开menu_one.rc
文件来查看它的内容,我得到了这个错误:
我已经仔细检查了这两个位置,但都不存在。我仅有的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
我试着做了一个repair install of the Windows SDK,但是没有解决这个问题。我该怎么办?
发布于 2012-05-27 06:00:14
This thread提到了一个注册表问题:
在我安装了64位Windows7 SP1和VS2010 Sp1的电脑上,我已经能够重现这个问题。
我要做的是修改以下注册表项
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows]
"CurrentVersion"="7.0"
"CurrentInstallFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0\\"
to
[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及其所有子键。这样问题就解决了。
发布于 2014-07-10 04:44:08
我有点担心更改注册表,因为我运行的是v8.0A,但我能够通过简单地将rcdll.dll从以前的版本复制到错误消息中列出的目录来修复错误。
发布于 2015-02-27 06:24:35
VonC's answer是有帮助的,但在我的例子中它并没有解决问题。有另一个注册表项需要更改。
为了找到那个键,我在regedit中搜索v6.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.0A
或7.0.30319
。我在搜索结果的子键中发现了一些版本字符串,因此我也在那里应用了更改。
在我的机器上,Visual Studio使用的密钥位于:
[HKEY_USERS\S-1-5-21-627493193-880714491-1605132347-6179\Software\Microsoft\Microsoft SDKs\Windows]
https://stackoverflow.com/questions/10770084
复制相似问题