2013-08-18 8 views
3

J'ai travaillé sur un moteur dans Visual Studio 2012 qui prend en charge le rendu avec Direct3D 9 et Direct3D 11. Cependant, je reçois de nouvelles personnes pour aider le projet et ils préfèrent fonctionne sur Visual Studio 2010 car c'est la version qu'ils possèdent et utilisent. J'ai donc décidé de convertir le projet à construire avec le jeu d'outils de la plate-forme v100 de VS2010. Je suis presque prêt à l'utiliser, mais je ne peux pas inclure DirectXMath.h, nécessaire pour le DirectXTK et certaines fonctions utilitaires que j'utilise. Il fait partie du SDK Windows 8 et inclus dans VS2012, mais VS2010 ne semble pas le trouver. Quelqu'un sait-il comment l'inclure dans les variables d'environnement pour que tout le monde puisse travailler avec Win7 et travailler de la même façon avec Win7?DirectXMath et Win8 SDK dans le projet VS2010

Merci.

Répondre

3

Pour faire de nouveaux coéquipiers pouvoir coder VS2010 vous avez plusieurs options:

  1. Vous n'avez pas besoin de changer le jeu d'outils de plate-forme pour ancien et réécrire votre code de base. Les développeurs VS2010 peuvent simplement installer le SDK Windows 8 et utiliser le jeu d'outils v110. Pour les aider, configurer "répertoires VC++" dans les propriétés du projet comme indiqué dans this article (modifier les variables macro, qui pointe à l'ancien SDK Windows, à des endroits explicites de nouveau Windows SDK):

    • Dans « Annuaires Executable » remplacer $(WindowsSdkDir) bin with $ (ProgramFiles) \ Kits de Windows \ 8.0 \ bin \ x86`
    • Dans « include » ajouter au $(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared début et enlever $(WindowsSdkDir)include
    • Dans « Annuaires Bibliothèque » rEMPLACER $(WindowsSdkDir)lib avec $(ProgramFiles)\Windows Kits\8.0\lib\win8\um\x86
    • Dans « Exclure des répertoires » remplacer $(WindowsSdkDir)include avec $(ProgramFiles)\Windows Kits\8.0\Include\um;$(ProgramFiles)\Windows Kits\8.0\Include\shared
    • Lors du ciblage x64, remplacez x86 avec x64
  2. Si vous vraiment souhaitez rétrograder le jeu d'outils de V110 à V100, alors vous besoin de faire usage vieux autonome DirectX SDK. Avant, Windows SDK et DirectX SDK étaient séparés. Ils ont été fusionnés depuis Windows 7 SDK. Lors de la fusion, Microsoft a décidé de supprimer certains éléments et a également renommé certains fichiers, par exemple, le SDK autonome contient des maths dans #include <xmmath.h>.

  3. Vous pouvez combiner les deux: créer plusieurs configurations de projet/plateforme et implémenter la compilation conditionnelle via #ifdef où la configuration de VS2010 échouera à trouver les en-têtes/compiler. Par exemple, vous pouvez utiliser les fonctionnalités C++ 11 dans la branche de code VS2012, mais dans la branche VS2010, vous n'utilisez que des fonctionnalités C++ 03.

Je préférerais la première option, mais c'est à vous de décider.

P.S. Pour autant que je me souvienne, les fichiers de projet de VS2012 (.vcxproj) ne peuvent pas être ouverts dans VS2010 (il ne connaît que .vcproj), donc vous ne pouvez pas le partager.Vous voudrez probablement installer VS2010, créer .vcproj et conserver les deux fichiers. Cela peut être douloureux quand vous changez les options du projet en un, et oubliez de changer dans l'autre, alors faites attention. En outre, pensez à déplacer toute votre équipe vers un seul IDE, ou au moins un seul système de construction (par exemple, CMake).

Bonne codification!

Questions connexes