2012-05-10 64 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

相关问题