找回密码
 立即注册
搜索
查看: 431|回复: 0

如何修改 Visual Studio 中 Windows SDK 路径的宏定义

[复制链接]

266

主题

0

回帖

1119

积分

管理员

积分
1119
发表于 2023-12-26 00:04:02 | 显示全部楼层 |阅读模式

Visual Studio 2022 有时候莫名其妙地在不能正常编译(可能是装多个 SDK 造成的),找不到 ctype.h 等头文件。在项目的 VC++ 目录定义中发现是 SDK 宏定义出错了,比如正常路径是 C:\Program Files (x86)\Windows Kits,但变成了 C:\Program Files \Windows KitsD:\Windows Kits 等。但是这些宏定义在 IDE 中是不能修改的,需要在系统注册表中修改。

ctype.h 时 是 $(UCRTContentRoot) 的定义出错了,它是在 C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\uCRT.props 文件中被定义的:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>

    <UCRTContentRoot Condition="'$(UCRTContentRoot)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots@KitsRoot10)</UCRTContentRoot>
    <UCRTContentRoot Condition="'$(UCRTContentRoot)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots@KitsRoot10)</UCRTContentRoot>

    <TargetUniversalCRTVersion Condition="'$(TargetUniversalCRTVersion)' == ''">$(TargetPlatformVersion)</TargetUniversalCRTVersion>

    <UniversalCRT_IncludePath>$(UCRTContentRoot)Include\$(TargetUniversalCRTVersion)\ucrt;</UniversalCRT_IncludePath>
    <UniversalCRT_LibraryPath_x86>$(UCRTContentRoot)lib\$(TargetUniversalCRTVersion)\ucrt\x86;</UniversalCRT_LibraryPath_x86>
    <UniversalCRT_LibraryPath_x64>$(UCRTContentRoot)lib\$(TargetUniversalCRTVersion)\ucrt\x64;</UniversalCRT_LibraryPath_x64>
    <UniversalCRT_LibraryPath_arm>$(UCRTContentRoot)lib\$(TargetUniversalCRTVersion)\ucrt\arm;</UniversalCRT_LibraryPath_arm>
    <UniversalCRT_LibraryPath_arm64>$(UCRTContentRoot)lib\$(TargetUniversalCRTVersion)\ucrt\arm64;</UniversalCRT_LibraryPath_arm64>
    <UniversalCRT_SourcePath>$(UCRTContentRoot)Source\$(TargetUniversalCRTVersion)\ucrt;</UniversalCRT_SourcePath>

  </PropertyGroup> 
</Project>

可以看到,SDK 的根路径在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots@KitsRoot10HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots@KitsRoot10,找到它并修改成正确的路径重启 VS 即可。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棱讯科技 ( 粤ICP备2024228160号-2|粤公网安备44030002003510号 )

GMT+8, 2024-7-27 12:55 , Processed in 0.015433 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表