2011-03-09 5 views
3

Je ne suis pas sûr que quelqu'un l'ait remarqué, mais il semble y avoir un conflit avec le SDK DirectX et le SDK Windows du VS2010. Si vous regardez dans le dossier sous le répertoireIntégration DirectX SDK avec VS 2010

C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Inclure

Vous verrez qu'il contient les anciens en-têtes pour DirectX 11. Le répertoire ci-dessus est inclus par défaut dans chaque fichier de projet VS 2010 et est requis pour que VS 2010 puisse compiler correctement.

La même chose est vraie pour les fichiers .lib pour DirectX.

Maintenant, voici le problème, pour inclure le SDK Directx à votre projet dans VS2010 vous ajoutez les répertoires via la feuille de propriétés du projet. Cela signifie automatiquement que vous incluez à la fois les anciens en-têtes et libs pour DirectX ainsi que les nouveaux ... :(

Si vous pensez que vous construisez avec les dernières bibliothèques et fichiers d'en-tête DirectX, vous pourriez très bien vous tromper comme le compilateur pourrait être en utilisant les fichiers non voulus.

Comment puis-je contourner ce problème que je ne peux pas sembler compiler quoi que ce soit sans garder les paramètres du projet par défaut?

aussi nu à l'esprit que je suis en utilisant C++ et VS2010 Ultimate de MSDNAA

Répondre

0

Réponse courte: Cela n'a probablement pas d'importance

L'installation de DXSDK mise à jour ne mettra pas à jour les DLL système fournies avec Windows. Cela n'a pas d'importance si vous incluez/liez avec le répertoire DXSDK ou le répertoire v7.0A. Lorsque l'application s'exécute, elle charge les mêmes DLL de toute façon. (Notable exception: le D3DX_xx.dll pour les fonctions d'assistance - car ce ne sont pas des composants OS, ils sont livrés avec le SDK et sont destinés à être inclus dans le package d'installation de l'application). Les fichiers d'en-tête fournis avec DXSDK doivent être quasiment identiques à ceux du répertoire v7.0a.

Et si je ne me trompe pas, incluez les répertoires lib et spécifiés dans la boîte de dialogue Paramètres du projet pour que votre application prenne la préférence AVANT les répertoires SDK par défaut. Donc, la mise à jour de la boîte de dialogue Paramètres du projet devrait être OK. Mais si vous voulez vraiment être sûr ... Au lieu d'ajouter l'en-tête/libs DXSDK pour chaque projet, faites-en les répertoires de recherche par défaut pour tous les projets. Dans le menu principal de Visual Studio: Sélectionnez Outils-> Options. Dans le menu de gauche de la boîte de dialogue Options, sélectionnez «Solutions & Solutions» et «Répertoires VC++» en dessous.

Ensuite, dans la liste déroulante en haut à droite de "Afficher les répertoires pour", sélectionnez "Inclure les fichiers".

Assurez-vous que votre répertoire $ (DXSDK) inclut avant l'entrée $ (WindowsSdkDir). Si ce n'est pas déjà fait, ajoutez-le.

Répétez cette opération pour l'option "Fichiers de bibliothèque" sous l'option de menu "Afficher les répertoires pour".

+1

L'onglet Répertoires VC++ est obsolète dans VS2010:/ – tugudum

+0

??? Qu'est-ce qui te fait dire ça? Ça fonctionne encore. La dépréciation est-elle documentée quelque part? – selbie

+0

Bien que cet onglet est complètement vide dans VS2010 et demande d'utiliser une feuille de propriétés globale pour ces paramètres. – tugudum