Dov'è DirectX SDK?

A partire da Windows 8, DirectX SDK è incluso come parte di Windows SDK.

Abbiamo originariamente creato DirectX SDK come piattaforma ad alte prestazioni per lo sviluppo di giochi su Windows. Man mano che le tecnologie DirectX sono maturate, sono diventate rilevanti per una gamma più ampia di applicazioni. Oggi, la disponibilità dell'hardware Direct3D nei computer consente anche alle applicazioni desktop tradizionali di usare l'accelerazione hardware grafica. In parallelo, le tecnologie DirectX sono più integrate con Windows. DirectX è ora una parte fondamentale di Windows.

Dato che Windows SDK è il principale SDK per sviluppatori per Windows, DirectX è ora incluso nel kit. Puoi usare Windows SDK per creare giochi eccezionali per Windows. Per scaricare Windows 11 SDK, Windows 10 SDK o Windows 8.x SDK, vedere l'archivio di Windows SDK e dell'emulatore.

Le tecnologie e gli strumenti seguenti, in precedenza parte di DirectX SDK, fanno ora parte di Windows SDK.

Tecnologia o strumento Descrizione
Componenti grafici di Windows
Le intestazioni e le librerie per Direct3D e altre API grafiche windows, ad esempio Direct2D, sono disponibili in Windows SDK.
Nota: Le librerie di utilità D3DX9/D3DX10/D3DX11 deprecate sono disponibili tramite NuGet, ma esistono anche diverse alternative open source. La libreria di utilità D3DCSX DirectCompute e la DLL ridistribuibile sono disponibili in Windows SDK. D3DX12 è disponibile in GitHub.
Compilatore HLSL (FXC.EXE)
Il compilatore HLSL è uno strumento nella sottodirectory dell'architettura appropriata nella cartella bin in Windows SDK.
Nota: L'API D3DCompiler e la DLL ridistribuibile sono disponibili in Windows SDK.
Per lo sviluppo di DirectX 12, usare DXCompiler in Windows SDK e ospitato in GitHub.
PIX per Windows
Una sostituzione dello strumento PIX per Windows è ora una funzionalità di Microsoft Visual Studio, denominata Debugger della grafica di Visual Studio. Questa funzionalità ha migliorato notevolmente l'usabilità, il supporto per Windows 8 e Direct3D 11.1 e l'integrazione con le funzionalità tradizionali di Microsoft Visual Studio, ad esempio stack di chiamate e finestre di debug per il debug HLSL . Per altre info su questa nuova funzionalità, vedi Debug di grafica DirectX.

Per lo sviluppo di DirectX 12, vedere la generazione più recente di PIX in Windows
XAudio2 per Windows
L'API XAudio2 è ora un componente di sistema in Windows 11, Windows 10 e Windows 8.x. Le intestazioni e le librerie per XAudio2 sono disponibili in Windows SDK. Per il supporto di Windows 7, vedi XAudio2Redist.
XInput per Windows
L'API XInput 1.4 è ora un componente di sistema in Windows 11, Windows 10 e Windows 8.x. Le intestazioni e le librerie per XInput sono disponibili in Windows SDK.
Nota: XInput legacy 9.1.0 è disponibile anche come parte di Windows 7 o versione successiva.
XNAMATH
La versione più recente di XNAMATH, aggiornata per i nuovi set di istruzioni e ARM/ARM64, è ora DirectXMath. Le intestazioni per DirectXMath sono disponibili in Windows SDK e in GitHub.
Visualizzatore funzionalità DirectX Pannello di controllo e DirectX
Le utilità del Visualizzatore di Pannello di controllo DirectX e DirectX sono incluse nella sottodirectory dell'architettura appropriata nella cartella bin in Windows SDK. Il visualizzatore di funzionalità DirectX è disponibile anche in GitHub.
XACT
Lo strumento xbox audio multipiattaforma (XACT) non è più supportato per l'uso in Windows.
Games Explorer e GDFMAKER
L'API Games Explorer presenta giochi agli utenti di Windows. L'API Games Explorer è supportata solo in Windows Vista e Windows 7. Usa lo strumento Games Definition File Maker (GDFMAKER.EXE) per dichiarare le classificazioni dei giochi per le app di Windows Store.
Lo strumento Game Definition File Maker (GDFMaker.exe) è incluso nella sottodirectory x86 nella cartella bin in Windows SDK e supporta sia le app di Windows Store che le applicazioni desktop Win32.

Altri strumenti di DirectX SDK
Vari strumenti, ad esempio dxtex.exe, meshconvert.exe, texconv.exe e uvatlas.exe sono disponibili online. Per altre info su questi strumenti, vedi Catalogo degli strumenti di DirectX SDK.
Esempi
È possibile trovare applicazioni di esempio che evidenziano le tecnologie DirectX 12 in Windows nel repository di esempi DirectX . La maggior parte degli esempi per le versioni precedenti di Direct3D è disponibile online. Per altre informazioni su questi esempi, vedi Catalogo degli esempi di DirectX SDK.
DirectX gestito 1.1
Gli assembly DirectX .NET sono deprecati e non sono consigliati per l'uso da parte di nuove applicazioni. Sono disponibili diverse alternative. Vedere DirectX e .NET.

 

DirectX SDK legacy è disponibile per il download dall'Area download Microsoft , se necessario, ma non è consigliabile usare per i nuovi progetti.

Nota

L'installazione di DirectX SDK non riesce se è già installata una determinata versione di Visual C++ 2010 Redistributable Package. Per altre info su e una soluzione per risolvere questo problema, vedere l'errore "S1023" quando si installa DirectX SDK (giugno 2010).

 

Uso di progetti DirectX SDK con Visual Studio

Gli esempi di DirectX SDK di giugno 2010 sono supportati con SKU premium di Visual Studio (Microsoft Visual Studio Professional 2012, Microsoft Visual Studio Ultimate 2012, Microsoft Visual Studio Professional 2013 o Microsoft Visual Studio Ultimate 2013) in Windows 7 e windows 8 e versioni successive. A causa della transizione di intestazioni e librerie DirectX in Windows SDK, sono necessarie modifiche alle impostazioni del progetto per compilare correttamente questi esempi con il modo in cui Windows 8 SDK e versioni successive vengono inseriti in un pacchetto con gli SKU premium di Visual Studio.

Questi passaggi si applicano anche ai propri progetti dipendenti da DirectX SDK.

  1. Assicurarsi che la versione di giugno 2010 di DirectX SDK sia installata nel computer di sviluppo. Se si installa in un computer che esegue Windows 8 e versioni successive, verrà richiesto di abilitare .NET 3.5 come installazione prerequisita per DirectX SDK.

    Nota

    L'installazione di DirectX SDK non riesce se è già installata una determinata versione di Visual C++ 2010 Redistributable Package. Per altre info su e una soluzione per risolvere questo problema, vedere l'errore "S1023" quando si installa DirectX SDK (giugno 2010).

     

  2. Assicurarsi di usare uno degli SKU premium di Visual Studio. Microsoft Visual Studio Express 2012 per Windows 8 o Microsoft Visual Studio Express 2013 per Windows non compilerà applicazioni desktop di Windows 8 e versioni successive, ad esempio gli esempi di DirectX SDK. Per installare uno degli SKU premium di Visual Studio, passare a: Visual Studio scarica e seguire le istruzioni.

  3. Usare il browser di esempio directX SDK per installare i file di progetto per l'esempio desiderato. Aprire il file di soluzione compatibile con Microsoft Visual Studio 2010 dell'esempio (con suffisso con _2010).

  4. Se si apre l'esempio in un sistema in cui è installato solo Microsoft Visual Studio 2012 o Microsoft Visual Studio 2013, viene visualizzato il messaggio seguente: "Questa soluzione contiene uno o più progetti che usano una versione precedente del compilatore e delle librerie VC++. Ogni progetto può essere aggiornato per usare il compilatore e le librerie VC++ (v110)." Scegliere l'opzione Aggiorna da questa finestra di dialogo da aggiornare prima di aprire il progetto.

    In caso contrario, è possibile eseguire l'aggiornamento al compilatore e alle librerie di Visual Studio 2012 o Visual Studio 2013 C++ 11 dopo che sono stati caricati facendo clic con il pulsante destro del mouse sulla soluzione e scegliendo Aggiorna progetti VC++.

  5. D3DX non è considerato l'API canonica per l'uso di Direct3D in Windows 8 e versioni successive e pertanto non è inclusa in Windows SDK corrispondente. Esaminare le soluzioni alternative per l'uso dell'API Direct3D. Per i progetti legacy, ad esempio gli esempi di DirectX SDK di Windows 7 (e versioni precedenti), sono necessari i passaggi seguenti per compilare applicazioni con D3DX usando DirectX SDK:

    1. Modificare le directory VC++ del progetto come indicato di seguito per usare l'ordine corretto per le intestazioni e le librerie dell'SDK.

      i. Aprire **Proprietà** per il progetto e selezionare la pagina **Directory VC++**. ii. Selezionare **Tutte le configurazioni e tutte le piattaforme**. iii. Impostare queste directory come segue:
      • Directory eseguibili: <ereditare dalle impostazioni predefinite> del progetto o padre (nell'elenco a discesa a destra)
      • Includi directory: $(IncludePath);$(DXSDK_DIR)Include
      • Includi directory della libreria: $(LibraryPath);$(DXSDK_DIR)Lib\x86

      iv. Fare clic su Applica.
      v. Scegliere la piattaforma x64.
      vi. Impostare la directory della libreria come indicato di seguito:

      • Directory della libreria: $(LibraryPath);$(DXSDK_DIR)Lib\x64
    2. Ovunque nel progetto siano inclusi "d3dx9.h", "d3dx10.h" o "d3dx11.h", assicurarsi di includere in modo esplicito "d3d9.h", "d3d10.h" e "dxgi.h" o "d3d11.h" e "dxgi.h" per assicurarsi di scegliere prima di tutto la versione più recente. Se necessario, è possibile disabilitare l'avviso C4005 ; Tuttavia, questo avviso indica che si sta usando la versione precedente di queste intestazioni.

    3. Rimuovere tutti i riferimenti a DXGIType.h nel progetto. Questa intestazione non esiste in Windows SDK e la versione di DirectX SDK è in conflitto con il nuovo winerror.h.

    4. Tutte le DLL D3DX vengono installate nel computer di sviluppo dall'installazione di DirectX SDK. Assicurarsi che le dipendenze D3DX necessarie vengano ridistribuite con qualsiasi esempio o con l'applicazione se viene spostata in un altro computer.

    5. Tenere presente che le tecnologie sostitutive per gli usi correnti di D3DX11 includono DirectXTex, DirectXTK, DirectXMesh e UVAtlas. D3DXMath viene sostituito da DirectXMath.

  6. Assicurarsi di usare la nuova versione del compilatore shader HLSL osservando le condizioni seguenti:

    1. Se si modifica la directory eseguibile in base al passaggio 5, le compilazioni del progetto useranno FXC dall'installazione di Windows SDK. Tenere presente che i file HLSL sono ora ufficialmente riconosciuti da Visual Studio. È possibile aggiungerli come file di progetto e impostare le opzioni del compilatore tramite il sistema di progetto.

    2. Richiamare la compilazione in fase di esecuzione tramite la DLL D3DX legacy userà la versione precedente non corretta del compilatore HLSL. Sostituire tutti i riferimenti alle API D3DXCompile*, D3DX10Compile*e D3DX11Compile* nel codice con la funzione D3DCompile in D3DCOMPILER_46.DLL o D3DCOMPILER_47.DLL.

    3. Qualsiasi progetto che usa la compilazione dello shader di runtime deve avere D3DCOMPILER_xx.DLL copiato nel percorso eseguibile locale per il progetto. Questa DLL è disponibile in questa sottodirectory dell'installazione di Windows SDK in %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch> o %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch> dove <arch> è x86 e x64.

      Il D3DCOMPILER_46.DLL o D3DCOMPILER_47.DLL da Windows SDK non è un componente di sistema e non deve essere copiato nella directory di sistema di Windows. È possibile ridistribuire questa DLL ad altri computer con l'applicazione come DLL affiancata.

  7. Qualsiasi progetto che usa l'API XInput ed è destinato all'esecuzione in Windows 7 o versioni precedenti di Windows deve usare la versione legacy (9.1.0) o dovrà includere in modo esplicito le intestazioni e le librerie per questo componente da DirectX SDK. Intestazione XInput e XINPUT. LIB incluso in Windows SDK è destinato solo alla versione (1.4) fornita come parte di Windows 8 e versioni successive. La stessa intestazione può essere usata con XINPUT9_1_0.LIB per usare la versione legacy, inclusa nelle versioni precedenti di Windows. La versione legacy di XInput non rileva le funzionalità complete o supporta l'audio integrato nel controller, quindi se è necessario il supporto per queste funzionalità, è necessario usare la versione di DirectX SDK (1.3).

    Per usare l'API XInput di livello inferiore completa, è consigliabile #include usare direttamente le intestazioni XInput specifiche di DirectX SDK:

    #include <%DXSDK_DIR%Include\xinput.h>

    ... e nelle opzioni del linker per Dipendenze aggiuntive, collegarsi direttamente alla libreria XInput di DirectX SDK:

    %DXSDK_DIR%Include\<arch>\xinput.lib

    Il file binario XINPUT1_3.DLL viene installato nelle directory di sistema di Windows dall'installazione di DirectX SDK nel computer di sviluppo. Sarà necessario ridistribuire questo file binario con l'applicazione usando l'installazione del programma di installazione DirectX da DirectX SDK.

  8. Qualsiasi progetto che usa l'API XAudio2 ed è destinato a essere eseguito in Windows 7 o versioni precedenti di Windows deve usare la versione precedente (9.1.0) o includere in modo esplicito le intestazioni e le librerie per questo componente da DirectX SDK. Le intestazioni e le librerie XAudio2 incluse in Windows SDK sono destinate solo alla versione (2.8) inclusa come parte di Windows 8.

    Ad esempio, con XAudio2, devi usare #include direttamente le intestazioni XAudio2 specifiche di DirectX SDK:

    #include <%DXSDK_DIR%Include\xaudio2.h>

    ... e nelle opzioni del linker per Dipendenze aggiuntive, collegarsi direttamente alla libreria XAudio2 di DirectX SDK:

    %DXSDK_DIR%Include\<arch>\xaudio2.lib

    Il file binario XAUDIO2_7.DLL viene installato nelle directory di sistema di Windows dall'installazione di DirectX SDK nel computer di sviluppo. È necessario ridistribuire queste librerie con l'applicazione usando l'installazione del programma di installazione DirectX da DirectX SDK.

  9. Se è stato usato DirectX SDK con versioni precedenti di Visual Studio, l'aggiornamento di Visual Studio 2010 potrebbe aver eseguito la migrazione del percorso directX SDK nelle impostazioni predefinite del progetto. È consigliabile rimuovere queste impostazioni per evitare errori di compilazione futuri. Nella directory %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0 modificare i file Microsoft.Cpp.Win32.user e Microsoft.Cpp.x64.user per rimuovere tutti i riferimenti ai percorsi DXSDK_DIR. In alternativa, è possibile rimuovere l'intero <nodo PropertyGroup> contenente le voci Percorso, <ad esempio ExecutablePath e <IncludePath>>, per ripristinare le impostazioni predefinite standard. Se non vengono visualizzati riferimenti a DXSDK_DIR in questi file, non sono necessarie modifiche.

  10. Se l'app risultante supporta Windows Vista con Service Pack 2 (SP2) e Windows 7 e Windows 8 e versioni successive, impostare la definizione del preprocessore denominata _WIN32_WINNT su 0x600 . Se supporta solo Windows 7 e Windows 8 e versioni successive, impostarlo su 0x601.

    Ad esempio:

    1. Aprire Proprietà per il progetto e selezionare C/C++>Preprocessore.
    2. Selezionare Tutte le configurazioni e Tutte le piattaforme.
    3. Passare alla sezione Definizioni del preprocessore e impostare _WIN32_WINNT=0x600.
    4. Fare clic su Applica.

Giochi per Windows e DirectX SDK

Dove si trova DirectX SDK (2021 Edition)?

SDK DirectX di una certa età

Vivere senza D3DX