Sto sviluppando un'applicazione WPF in cui la parte 3D è gestita da DirectX 9 (un sacco di 3d che non è stato eseguito abbastanza velocemente usando WPF).Applicazione DirectX su finestre a 64 bit
Il problema è che l'applicazione viene rilasciata con "Qualsiasi CPU" come configurazione e quando un utente la esegue su una finestra a 64 bit, la parte direcX si blocca (System.BadImageFormatException). Apparentemente le DLL incluse per la parte directX non sono utilizzabili su finestre a 64 bit.
Questo è accaduto con alcune altre 3: rd part dll che usiamo nella nostra applicazione ma questo abbiamo risolto cambiando le DLL in runtime a quelle create per x64 se l'utente è in esecuzione su una macchina Windows a 64 bit. Qualcuno di voi sa dove posso trovare DirectX 9 dll per x64? Se esistono davvero.
Quelli di cui ho bisogno sono:
- Microsoft.DirectX.Direct3D
- Microsoft.DirectX.Direct3DX
- Microsoft.DirectX
Se non esistono, il problema può essere risolto in qualche altro modo? Non posso cambiare la configurazione per 86 perché l'applicazione è rilasciato tramite ClickOnce e un cambio di configurazione rendono ClickOnce smettere di lavorare (la configurazione è incluso nella chiave ClickOnce)
Lasciatemi aggiungere che la sto usando un WinForms parte ospitata dall'applicazione WPF e che la parte winforms utilizza le DLL DirectX di cui sto chiedendo informazioni. Questo era un modo molto migliore e più veloce di presentare un sacco di mesh 3D in WPF piuttosto che usare WPF: s 3D. Purtroppo questo problema si è verificato invece.
Per inciso: XNA/Windows stesso le forze per utilizzare la modalità a 32 bit anche su x64 - quindi mi chiedo se, semplicemente, non è possibile ... io non lo so, però. –
Solo una FYI, WPF 3d stuff è un wrapper per X diretta. Sono praticamente uno nella stessa. Dare o prendere qualcosa. – Tony