在Visual Studio 2008中未正确设置WindowsSdkDir?

Rog*_*mbe 17 winapi visual-studio-2008

我正在尝试构建一些需要Windows 7.0 SDK头文件和库的C++代码.我的VC++目录设置为:

$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSdkDir)\include
$(WindowsSdkDir)\common\include
$(FrameworkSDKDir)include
Run Code Online (Sandbox Code Playgroud)

我的$(WindowsSdkDir)变量设置为C:\Program Files\Microsoft SDKs\Windows\v7.0\- 我使用SDK的"Visual Studio注册"配置工具来设置它,它在注册表中看起来是正确的.我已经检查过HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows(和同样的Wow6432Node.

尽管如此,Visual C++仍在从中获取头文件 C:\Program Files\Microsoft SDKs\Windows\v6.0A\

怎么了,怎么解决?

Rog*_*mbe 17

啊.发现此博文:http://blogs.msdn.com/windowssdk/archive/2008/06/30/winsdk-bug-notification-sdk-config-tool-appears-to-work-but-fails.aspx

实质上,配置工具仅更新HKEY_LOCAL_MACHINE设置; Visual Studio首选使用HKEY_CURRENT_USER设置.

  • 刚刚遇到了类似的问题。Windows SDK v7.0A 已安装,但仅在“HKEY_LOCAL_MACHINE”注册表项中找到,而未在“HKEY_CURRENT_USER”中找到。VS 使用的是 Windows SDK v6.0A,因为它是在“HKEY_CURRENT_USER”中注册的。解决此问题的一种方法是使用 `reg copy HKLM\... HKCU\... /s` 命令复制数据,然后修复 `CurrentVersion` 和 `CurrentInstallFolder` 值以使用较新的开发工具包。 (2认同)

小智 8

我遇到了同样的问题,并找到了一个解决方案,似乎比使用注册表进行黑客攻击更好...

"打开任何项目并将Platform Toolset更改为Windows7.1SDK并构建它.之后,无论选择的Platform Toolset如何,所有项目的宏$(WindowsSdkDir)都会更改为v7.1."

它对我有用.