2013-08-18 55 views
3

我一直在使用Visual Studio 2012中的引擎工作,該引擎支持使用Direct3D 9和Direct3D 11進行渲染。但是,我收到了一些新人幫助完成項目,他們更願意在Visual Studio 2010上工作,因爲這是他們擁有和使用的版本。所以我決定用VS2010的v100平臺工具集來構建項目。VS2010項目中的DirectXMath和Win8 SDK

我越來越接近它的工作,但我不能包括DirectXMath.h,DirectXTK和我正在使用的一些實用功能所必需的。它是Windows 8 SDK的一部分,包含在VS2012中,但VS2010似乎沒有找到它。

任何人都知道如何使用環境變量來包含它,以便它適用於團隊中的每個人,以及在Win7上的工作方式?

謝謝。

回答

3

爲了讓新隊友能在VS2010的代碼,你有幾種選擇:

  1. 你並不需要的平臺工具集更改爲舊和重寫你的代碼。 VS2010開發人員可以安裝Windows 8 SDK,並使用v110工具集。爲了幫助他們,配置項目屬性「VC++目錄」中this article指出(改宏變量,它指向舊的Windows SDK,將新的Windows SDK的明確位置):

    • 在「可執行文件目錄」更換$(WindowsSdkDir)with $(PROGRAMFILES)\的Windows套件\ 8.0 \ BIN \ x86`
    • 在「包含目錄」在 開頭添加$(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared和刪除$(WindowsSdkDir)include
    • 在「庫目錄」用01代替$(WindowsSdkDir)lib 237392063448527964714​​
    • 在「排除目錄」與$(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared
    • 更換$(WindowsSdkDir)include當目標x64,與x64
  2. 取代x86如果你真的想從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功能。

我寧願第一個選擇,但它取決於你自己決定。

P.S.據我記得,從VS2012(.vcxproj)的項目文件無法在VS2010中打開(它只知道.vcproj),所以你不能共享它。你可能會想要安裝VS2010,使.vcproj和維護這兩個文件。當您在一個項目中更改項目選項並忘記更改其他項目時會很痛苦,所以要小心。此外,請考慮將您的所有團隊移至單個IDE或至少單個構建系統(例如,CMake)。

快樂編碼!