【问题标题】:How should I migrate my managed DirectX programs to Windows 7?我应该如何将我的托管 DirectX 程序迁移到 Windows 7?
【发布时间】:2012-05-10 06:48:33
【问题描述】:

最近我买了一台装有 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 解决方案可能会减少移植时间。

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

【问题讨论】:

  • 我建议使用 OpenGL 以实现可移植性

标签: c# .net windows-7 directx managed-directx


【解决方案1】:

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

【讨论】:

  • 哇,好用!我之前尝试过,但现在我认为发生的事情是其中一个 DLL 在我将其更改为 x86 后没有重建。好吧,我很高兴这有效,但我相信每个人都会告诉我,我应该停止使用托管 DirectX。推荐的替代品是什么?
  • 在 x86 中您唯一需要重建的是 exe。我过去曾成功使用过 SlimDX,它完成了工作。
猜你喜欢
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 2010-12-16
  • 1970-01-01
  • 2014-07-28
  • 2016-06-13
  • 1970-01-01
相关资源
最近更新 更多