c# - 我应该如何将托管的 DirectX 程序迁移到 Windows 7?

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

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

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

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

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

最佳答案

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

关于c# - 我应该如何将托管的 DirectX 程序迁移到 Windows 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528788/

相关文章:

c++ - 寻找 "The specified module could not be found"的 dll

c# - 在运行程序中执行方法而不是启动新实例

windows-7 - 使用 Mercurial 的 hg 克隆会抛出 "getaddrinfo failed"错误(Windows 7)

c# - .NET Framework 和 CLR 版本有什么区别

c# - 使用 DateTime 查看本周的预订

c# - 如何在带有 Razor Pages 的 ASP.NET Core 2.1 中使用或处理并非为并发而设计的服务器端 SDK

c# - 如何在 SonarQube 中排除项目特定文件

c# - .Net Bing Map SOAP 服务限制

c# - 从 AAC 文件中读取或写入评级

c# - 在devexpress图表中找到两个系列的重叠点