Windows 8 VS2010项目中的DirectXMath和Win8 SDK

Windows 8 VS2010项目中的DirectXMath和Win8 SDK,windows-8,directx,direct3d,directxmath,Windows 8,Directx,Direct3d,Directxmath,我一直在Visual Studio 2012中的一个引擎中工作,该引擎支持使用Direct3D 9和Direct3D 11进行渲染。然而,我正在找一些新人来帮助这个项目,他们更愿意在VisualStudio2010上工作,因为那是他们拥有和使用的版本。因此,我决定将该项目转换为使用VS2010的v100平台工具集构建 我正接近让它工作,但我不能包括DirectXMath.h,它是DirectXTK和我正在使用的一些实用函数所必需的。它是Windows8SDK的一部分,包含在VS2012中,但VS

我一直在Visual Studio 2012中的一个引擎中工作,该引擎支持使用Direct3D 9和Direct3D 11进行渲染。然而,我正在找一些新人来帮助这个项目,他们更愿意在VisualStudio2010上工作,因为那是他们拥有和使用的版本。因此,我决定将该项目转换为使用VS2010的v100平台工具集构建

我正接近让它工作,但我不能包括DirectXMath.h,它是DirectXTK和我正在使用的一些实用函数所必需的。它是Windows8SDK的一部分,包含在VS2012中,但VS2010似乎找不到它

有人知道如何使用环境变量将其包括在内,从而使其适用于团队中的每个人,并且也适用于Win7吗


谢谢。

要让新队友能够在VS2010中编写代码,您有几个选项:

  • 您不需要将平台工具集更改为旧工具集并重写代码库。VS2010开发人员只需安装Windows8SDK,并使用v110工具集即可。为了帮助他们,请按照中的说明在项目属性中配置“VC++目录”(将指向旧Windows SDK的宏变量更改为新Windows SDK的显式位置):

    • 在“可执行目录”中,将
      $(WindowsSdkDir)
      bin
      替换为
      $(程序文件)\Windows Kits\8.0\bin\x86`
    • 在“包含目录”中添加
      $(程序文件)\Windows Kits\8.0\Include\um$(程序文件)\Windows工具包\8.0\Include\shared
      at 开始和删除
      $(WindowsSdkDir)包括
    • 在“库目录”中,将
      $(WindowsSdkDir)lib
      替换为
      $(程序文件)\Windows Kits\8.0\lib\win8\um\x86
    • 在“排除目录”中,用
      $(程序文件)\Windows替换
      $(WindowsSdkDir)include
      套件\8.0\包括\um$(程序文件)\Windows工具包\8.0\Include\shared
    • 当瞄准
      x64
      时,将
      x86
      替换为
      x64
  • 如果您真的想将工具集从v110降级到v100,那么您需要使用旧的单机版。以前,Windows SDK和DirectX SDK是分开的。自Windows7SDK以来,它们被合并。合并时,Microsoft决定删除一些内容,并重命名一些文件,例如,独立SDK在
    #include
    中包含数学

  • 您可以将两者结合起来:创建多个项目/平台配置和通过
    #ifdef
    执行条件编译,其中VS2010配置将无法找到头/编译。例如,您可以在VS2012代码分支中使用C++11功能,但在VS2010代码分支中仅使用C++03功能

  • 我更喜欢第一种选择,但由你决定

    另外,据我记忆所及,VS2012(
    .vcxproj
    )中的项目文件无法在VS2010中打开(它只知道
    .vcproj
    ),因此您无法共享它。您可能需要安装VS2010,制作
    .vcproj
    并维护这两个文件。当您在一个项目中更改项目选项,而在另一个项目中忘记更改时,可能会很痛苦,所以请小心。另外,考虑将所有团队移动到单个IDE,或者至少是单个构建系统(例如,)。 快乐编码