Pracuję nad aplikacją WPF, w której część 3D jest obsługiwana przez DirectX 9 (dużo 3D, które nie działało wystarczająco szybko przy użyciu WPF).Aplikacja DirectX w oknach 64-bitowych
Problem polega na tym, że aplikacja jest wydana z opcją "Any CPU" jako konfiguracja i gdy użytkownik uruchamia ją w 64-bitowych oknach, część direcX ulega awarii (System.BadImageFormatException). Wygląda na to, że biblioteka DLL dołączona do części DirectX nie jest dostępna w 64-bitowych oknach.
Stało się tak z niektórymi innymi bibliotekami 3-składnikowymi, których używamy w naszej aplikacji, ale rozwiązaliśmy to przez zmianę bibliotek DLL w środowisku wykonawczym na te zbudowane dla x64, jeśli użytkownik pracuje na 64-bitowym komputerze z systemem Windows. Czy ktokolwiek wie, gdzie mogę znaleźć biblioteki DLL DirectX 9 dla x64? Jeśli w ogóle istnieją.
Te muszę to:
- Microsoft.DirectX.Direct3D
- Microsoft.DirectX.Direct3DX
- Microsoft.DirectX
Jeśli one nie istnieją, może problem być rozwiązany w jakiś inny sposób? Nie mogę zmienić konfigurację do x86, ponieważ aplikacja jest uwalniany poprzez ClickOnce i zmiana konfiguracji sprawiają ClickOnce przestać działać (konfiguracja jest zawarte w kluczu ClickOnce)
Dodam, że używam WinForms część obsługiwana przez aplikację WPF i że część z winForm używa bibliotek DLL DirectX, o które pytam. Był to znacznie lepszy i szybszy sposób prezentacji wielu siatek 3D w WPF niż użycie WPF: s 3D. Niestety wystąpił ten problem.
Tak na marginesie: Itself XNA/Windows siły użyć trybu 32-bitowego nawet na x64 - więc zastanawiam się, czy to po prostu nie jest możliwe ... I naprawdę nie wiem, choć. –
Po prostu FYI, WPF 3d stuff jest opakowaniem dla bezpośredniego X. Są prawie jednym w tym samym. Daj lub weź trochę rzeczy. – Tony