簡體   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