Compilare l'app DX 9.0c con March09SDK = > Impossibile eseguire con DLL DX 9.0c precedenti = > Problema :)
Domanda
Non riesco a fare uno scenario per soggetto.
Ho installato l'SDK di DirectX 9 marzo 2009, che è 9, "sub" subversion c, ma "sub-sub" subversion è 41, quindi le librerie (d3dx9.lib d3d9.lib) stanno collegando le esportazioni a dxd3d_41.dll.
Che cosa succede quando provo a eseguire la mia app sul computer che ha DX9.0c ma non ridistribuibile da marzo 2009 è ora evidente :), non riesce perché non riesce a trovare dxd3d_41.dll.
Qual è la soluzione standard per questo problema? Come dovrei compilare la mia app per essere supportata da tutte le macchine con DX 9.0c? È realizzabile?
Grazie
Soluzione
Devi installare il runtime che corrisponde all'SDK che usi per compilare.
L'unico modo per forzare il funzionamento su TUTTE le macchine con DirectX9c installato è utilizzare un vecchio SDK (il primo SDK 9.0c). Tuttavia, consiglio vivamente di evitarlo. Stai molto meglio usando solo il 09 marzo e installando i runtime di marzo insieme all'installazione della tua applicazione.
Altri suggerimenti
La soluzione più semplice è quella di collegarsi al programma di aggiornamento del runtime per l'utente finale di Microsoft DirectX nella pagina di download e dire alle persone di eseguirlo prima per assicurarsi che i componenti di runtime siano aggiornati prima di installare l'applicazione.
Successivamente, la prossima cosa più semplice è raggruppare il programma di aggiornamento di runtime necessario con l'applicazione e fare in modo che gli utenti lo eseguano prima di eseguire il programma di installazione.
Tutto questo è documentato nella documentazione dell'SDK.
Le regole sono che se si collega a d3dx9, ci si aspetta che si gestisca assicurandosi che i componenti di runtime di redist richiesti siano installati.
Dai un'occhiata alla pagina "Installazione di DirectX per sviluppatori di giochi" nei documenti DXSDK.