我正在开发一个WPF应用程序,其中3D部分由DirectX 9处理(很多3D使用WPF运行得不够快).
问题是应用程序以"Any CPU"作为配置发布,当用户在64位窗口上运行时,direcX部分崩溃(System.BadImageFormatException).显然,directX部分包含的dll在64位窗口上不可用.
这与我们在我们的应用程序中使用的其他3:rd部分dll有关,但是如果用户在64位Windows机器上运行,我们已经通过将运行时的dll更改为为x64构建的dll来解决.你们中的任何人都知道我在哪里可以找到x64的DirectX 9 dll吗?如果它们存在的话.
我需要的是:
Microsoft.DirectX.Direct3D
Microsoft.DirectX.Direct3DX
Microsoft.DirectX
如果它们不存在,问题可以通过其他方式解决吗?我无法将配置更改为x86,因为应用程序是通过ClickOnce发布的,配置更改使ClickOnce停止工作(配置包含在ClickOnce键中)
让我补充一点,我正在使用由WPF应用程序托管的Winforms部分,而winforms部分正在使用我询问的DirectX dll.这是在WPF中呈现大量3D网格比使用WPF:3D更好更快的方式.不幸的是发生了这个问题.
你需要的DLL是Managed DirectX.不幸的是,微软不再支持Managed DirectX,它是后续产品,XNA也不支持64位.
SlimDX是Managed DirectX的开源替代品,它支持64位.另一种选择是在非托管C++中编写DirectX代码.