2012-05-10 61 views
2

最近我得到了一臺裝有Windows 7的新電腦,並安裝了C#2010 Express。我在C#2008 Express的Vista機器上寫了很多軟件。當我試圖將託管的D3D應用程序遷移到2010年時,它們都在運行時崩潰並出現錯誤「不是有效的Win32應用程序」。並經過一些故障排除後,我知道這是因爲MS不再支持託管DirectX。多麼拖沓。所以它看起來像我將不得不重新編寫一噸的代碼使用下列選項之一:我應該如何將託管的DirectX程序遷移到Windows 7?

* XNA
*的Direct3D 10/11 API
* OpenGL的
(就像你在VC++使用) *一些其他選項,如可能SlimDX

我正在尋找一個解決方案是:
*向後兼容(即,Vista和XP)
*向前兼容(我不想學習新系統只需要放棄它並在一年中學習另一個)
* OO-f riendly - 我有成千上萬行代碼來重寫。編寫非託管代碼時我沒有問題,但類似的面向對象解決方案可能會縮短移植時間。

我不能成爲第一個遇到這個問題的人。其他人找到的解決方案是什麼?

+0

我會建議OpenGL的便攜性 – Alex

回答

1

我的猜測是你的應用程序被構建爲AnyCPU,引用x86程序集,但是你的Win7機器是x64。將應用程序構建爲x86可能會解決該問題。

+0

哇,工作!我之前嘗試過,但現在我認爲發生了什麼是其中一個DLL在我將其更改爲x86後未重建。那麼我很高興,但工作,但我敢肯定,每個人都會告訴我,我應該停止使用託管DirectX。建議的替代品是什麼? – HypnoToad

+0

您需要重建爲x86的唯一東西是exe。過去我成功地使用了SlimDX,並完成了工作。 – erikkallen

相關問題