Le conflit de définition de la macro entre les en-têtes directx et winerror.h
Je suis sur windows 7 à l'aide de Visual Studio 2012.
Quand je compile, je reçois beaucoup de macro redéfinition des alertes causées par winerror.h contre dxgi.h, dxgitype.h, d3d11.h, d3d10.h; par exemple DXGI_STATUS_OCCLUDED, DXGI_STATUS_CLIPPED, DXGI_STATUS_NO_REDIRECTION etc.
Je suppose que c'est parce que le sdk de windows 8 est installé.
Comment puis-je éviter cela? Est il possible que je peux exclure ces nouvelles bibliothèques de mon projet?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce problème à l'aide de Visual Studio 2012 Express sur Windows 8; cependant, mes erreurs étaient presque exactement la même, et que la réparation est centrée autour de la Windows SDK. C'était dans MSDN (voir n ° 5):
Je ne peux pas dire pour sûr, mais je pense que Windows 8 SDK peut-être votre problème. Il est peut-être un peu de douleur, mais en utilisant le correctif ci-dessus vous aidera à faire de votre code exigent le moins de dépendances ainsi que le rendant compatible avec Windows 7 et Windows 8.
Je suis tombé sur cette question de la compilation SlimDX avec Visual Studios 2012 sur Windows 8. Windows SDK sont héritées par défaut afin qu'ils se chargent après avoir défini manuellement projet inclure des répertoires. Pour le fixer ajouter le SDK de Windows comme le premier répertoire include.
$(WindowsSDK_IncludePath)
(Et voilà, ma première réponse sur Stackoverflow)
Trouvé un, je l'espère bien, la solution de contournement du problème: Faire votre propre en-tête de fichier, qui inclut Windows.h (D3D11 comprend que, de toute façon), annule la définition des macros windows et comprend D3D11.h. Inclure cet en-tête au lieu de D3D11.h.
Note: Évidemment, cela donne la priorité D3D11 versions de définition, par rapport à ceux de Windows.h
S'il vous plaît laissez-moi savoir ce que vous en pensez, et n'ont pas de retour sur la critique. Je suis nouveau à cela et savoir que c'est tout à fait la force brute et probablement risqué.
J'ai modifié les paramètres et inclus le directx à partir de l'intérieur de Windows Kits\8.0 .
En fait, je voulais plutôt que de les ignorer et de les utiliser windows les en-têtes et les bibliothèques que j'ai utilisé avant, mais peut-être qu'il ne fait pas beaucoup de différence.
La seule chose est que maintenant je n'ai plus accès à la d3dx utilitaires.
Un autre quick-fix - rapide, comme dans " probablement pas la meilleure solution à long terme est de changer la "plate-forme d'outils" en vertu de la Solution/Propriétés/Général - dans mon cas précis, j'ai sélectionné "Visual Studio 2015 - Windows XP (v140_xp)" au lieu de "Visual Studio 2015 (v140)".