VS2010项目中的DirectXMath和Win8 SDK

时间:2013-08-18 08:00:24

标签: windows-8 directx direct3d directxmath

我一直在使用Visual Studio 2012中的引擎,它支持使用Direct3D 9和Direct3D 11进行渲染。但是,我得到了一些新人来帮助完成该项目,他们更愿意使用Visual Studio 2010,因为那是他们拥有和使用的版本。所以我决定将项目转换为使用VS2010的v100平台工具集构建。

我已经接近了它的工作但我不能包含DirectXMh.h,这是DirectXTK和我正在使用的一些实用程序函数所必需的。它是Windows 8 SDK的一部分,包含在VS2012中,但VS2010似乎没有找到它。

任何人都知道如何使用环境变量将其包含在内,以便它适用于团队中的每个人,并且也适用于Win7?

感谢。

1 个答案:

答案 0 :(得分:3)

为了让新队友能够在VS2010中进行编码,您有以下几种选择:

  1. 您无需将平台工具集更改为旧工具集并重写代码库。 VS2010开发人员可以只安装Windows 8 SDK,并使用v110工具集。为了帮助他们,请在this article中指定的项目属性中配置“VC ++目录”(将指向旧Windows SDK的宏变量更改为新Windows SDK的显式位置):

      
        
    • 在“可执行目录”中替换$(WindowsSdkDir) bin with $(ProgramFiles)\ Windows Kits \ 8.0 \ bin \ x86`
    •   
    • 在“包含目录”中添加$(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared   开头并删除$(WindowsSdkDir)include
    •   
    • 在“图书馆目录”中,将$(WindowsSdkDir)lib替换为$(ProgramFiles)\Windows Kits\8.0\lib\win8\um\x86
    •   
    • 在“排除目录”中,将$(WindowsSdkDir)include替换为$(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared
    •   
    • 定位x64时,将x86替换为x64
    •   
  2. 如果确实想要将工具集从v110降级到v100,那么您将需要使用旧的独立DirectX SDK。以前,Windows SDK和DirectX SDK是分开的。它们是自Windows 7 SDK以来合并的。合并时,Microsoft决定删除一些内容并重命名一些文件,例如,独立SDK包含#include <xmmath.h>中的数学。

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

  4. 我更喜欢第一种选择,但由您来决定。

    P.S。据我所知,VS2012中的项目文件(.vcxproj)无法在VS2010中打开(它只知道.vcproj),因此您无法共享它。您可能希望安装VS2010,生成.vcproj并维护这两个文件。当你在一个项目中更改项目选项时会感到很痛苦,而忘记在其他项目中进行更改,所以要小心。另外,请考虑将您的所有团队迁移到单个IDE或至少单个构建系统(例如,CMake)。

    快乐的编码!