我的產品升級到新的編譯器版本和新技術,但微軟的工作似乎已經對此作了一團糟......獲取VS2013,DirectXMath,XAudio2和D3D11共同努力靶向的Windows 7
- 的VS2013/WinSDK附帶的XAudio2版本在Windows 7上不起作用,並且沒有編譯標誌來解決這個問題(對於不包含前8值的_WIN32_WINNT,它甚至不包括它,將其設置得更高並且其鏈接庫尋找更新的無論如何,DLL名稱)。
- 其他現有的DirectX組件(如D3D11)在與Win8 SDK頭文件和導入庫一起使用時看起來很好。 Win7用戶仍然需要安裝d3d11.dll等DirectX SDK版本。
- 試圖將DirectX June 2010 SDK放入包含路徑(以獲取可運行的XAudio2版本),會導致宏衝突(例如,在dxgitype.h和winerror.h之間。看起來微軟把大量的宏移入了winerror.h,並且在嘗試定義它們之前沒有進行預處理器檢查......
- DirectXMath頭文件似乎只在Windows8 SDK頭文件中,它們對Windows沒有問題7 _WIN32_WINNT = 0x0601,但這一事實使我要去一箇舊的SDK沒有Winerror.h中廢話...
我想知道如果我可以undefing _WIN32_WINNT破解它包括Win8的XAudio2然後克隆了DirectX SDK版本內聯COM封裝器,但是如果任何XAudio2公共接口實際發生更改(例如結構佈局或新成員),則會使我暴露。
必須有一個正確的方法來做到這一點......如果我可以在Win8系統上使用操作系統提供的DLL而不是舊的DX redist一個在安全的方式(並沒有編譯我的代碼兩次,我真的想要避免單獨的win8 32/64桌面EXE的所有其他),甚至更好。
將傳統DirectX SDK與Wi [MSDN](http://msdn.microsoft.com/zh-cn/library/windows/desktop/ee663275.aspx)涵蓋了VS 2012或VS 2013附帶的ndows 8.x SDK。另請參閱[DirectX SDK(2013版)在哪裏?](http://blogs.msdn.com/b/chuckw/archive/2013/07/01/where-is-the-directx-sdk-2013-edition的.aspx)。 – 2014-09-27 18:36:21