请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]

263

主题

0

回帖

1028

积分

管理员

积分
1028
发表于 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 )|网站地图

GMT+8, 2024-5-18 08:37 , Processed in 0.020152 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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