Makro-definition Konflikt zwischen directx Header und winerror.h
Ich bin auf windows 7 mit Visual Studio 2012.
Wenn ich compile bekomme ich eine Menge von makro-Neudefinition Warnungen verursacht durch winerror.h versus dxgi.h, dxgitype.h, d3d11.h, d3d10.h; zum Beispiel DXGI_STATUS_OCCLUDED, DXGI_STATUS_CLIPPED, DXGI_STATUS_NO_REDIRECTION etc.
Ich vermute, das ist, weil die windows sdk-8 installiert ist.
Wie kann ich diese vermeiden? Gibt es eine Möglichkeit, die ich ausschließen kann, dass diese neuen Bibliotheken von meinem Projekt?
InformationsquelleAutor der Frage | 2012-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in dieses problem mithilfe von Visual Studio 2012 Express für Windows 8; jedoch, mein Fehler waren fast genau die gleichen, und das Update ist rund um die Windows SDK. Dies wurde in der MSDN (siehe #5):
Kann ich nicht sicher sagen, aber ich denke, das Windows 8 SDK könnte das problem sein. Es kann sein, ein bisschen Schmerz, aber mit den fix oben wird dazu beitragen, Ihren code benötigen weniger Abhängigkeiten und macht es kompatibel mit Windows 7 und Windows 8.
InformationsquelleAutor der Antwort user2400203
Ich lief in dieses Problem kompilieren SlimDX mit Visual Studio 2012 auf Windows 8. Windows SDK enthält, werden per default vererbt, so dass Sie Ladung nach manuell definierten Projekt-Unterverzeichnisse. Um es zu beheben fügen Sie das Windows SDK als die erste include-Verzeichnis.
$(WindowsSDK_IncludePath)
InformationsquelleAutor der Antwort gradbot
(Yay, meine erste Antwort auf Stackoverflow)
Fand eine, hoffentlich gute, Lösung für das Problem: Machen Sie Ihre eigenen header-Datei enthält Windows.h (D3D11 umfasst, anyways), undefines windows-Makros und umfasst D3D11.h. Auch diese header anstelle von D3D11.h.
Hinweis: dies Offensichtlich priorisiert D3D11-Versionen der definition, über jene von Windows.h
Bitte lassen Sie mich wissen, was Sie denken, und halten Sie nicht wieder auf Kritik. Ich bin neu in diesem und weiß, dass das ziemlich brute-force-und wahrscheinlich riskant.
InformationsquelleAutor der Antwort Aggrobatics
Ich die Einstellungen geändert und enthalten die directx innerhalb von Windows Kits\8.0 .
Eigentlich wollte ich anstelle es zu ignorieren und verwenden Sie den windows-Headern und-Bibliotheken, die ich vorher benutzt, aber vielleicht ist es nicht einen großen Unterschied machen.
Die einzige Sache ist, dass jetzt habe ich keinen Zugriff mehr auf die d3dx-Dienstprogramme.
InformationsquelleAutor der Antwort キキジキ
Anderen quick-fix - Schnellverschluss, als im "wahrscheinlich nicht die beste Lösung auf lange Sicht" - ist zu ändern, das "platform toolset" unter Lösung/Eigenschaften/allgemein - in meinem konkreten Fall wählte ich "Visual Studio 2015 - Windows XP (v140_xp)" anstelle von "Visual Studio 2015 (v140)".
InformationsquelleAutor der Antwort kalmiya