繁体   English   中英

64位窗口上的DirectX应用程序

[英]DirectX application on 64 bit windows

我正在开发一个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代码。

您可以将WPF应用程序设置为仅作为32位应用程序运行。 将您的ClickOnce问题发布为另一个SO问题。 这可能是你最好的选择。

Project Properties -> Build -> Platform Target -> x86

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM