2

最近我买了一台装有 Windows 7 的新电脑并安装了 C# 2010 Express。我在我的 Vista 机器上用 C# 2008 Express 编写了很多软件。当我尝试将托管 D3D 应用程序迁移到 2010 时,它们都在运行时崩溃,并出现错误“不是有效的 Win32 应用程序”。经过一些故障排除后,我了解到这是因为 MS 不再支持托管 DirectX。多么拖沓。所以看起来我必须重写大量代码才能使用以下替代方法之一:

*XNA
*Direct3D 10/11 API(就像你在 VC++ 中使用的那样)
*OpenGL
*其他一些选项,比如 SlimDX

我正在寻找一种解决方案:
*向后兼容(即,Vista 和 XP)
*向前兼容(我不想学习一个新系统就不得不放弃它并在一年内学习另一个)
* OO 友好——我有数千行代码要重写。我编写非托管代码没有问题,但类似的 OO 解决方案可能会减少移植时间。

我不能成为第一个遇到这个问题的人。其他人找到了哪些解决方案?

4

1 回答 1

1

我的猜测是您的应用程序是作为 AnyCPU 构建的,引用 x86 程序集,但您的 Win7 机器是 x64。将您的应用程序构建为 x86 可能会解决这个问题。

于 2012-05-10T12:53:31.137 回答