更新Windows SDK后,原来可以编译通过的VS 2008 C++ project出现编译错误:
fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
问题调查:
选择Project->Property->Configuration Properties->C/C++->General->Additional Include Directories,点击右侧"..."按钮打开窗口,发现已配置了"Inherit from parent or project defaults". 点击"Macros>>"按钮展开发现"WindowsSdkDir"指向了一个并不存在的路径"C:\Program Files\Microsoft SDKs\Windows\v6.0".
在VS 2008安装目录下搜索"WindowsSdkDir",发现这个配置可能是从注册表获取的。
打开注册表编辑器,发现这个错误值配置在HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs\Windows下;另外HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows也有相同的键,对应的值是正确的。
解决办法:
打开注册表编辑器,删除HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs,重新启动VS 2008。