最近,我买了一台安装了Windows7的新电脑,并安装了C# 2010Express。我在我的Vista机上用C# 2008Express写了很多软件。当我尝试将托管的D3D应用程序迁移到2010时,它们都在运行时崩溃,并显示错误"is not a valid Win32 application“。经过一些故障排除后,我了解到这是因为MS不再支持托管DirectX。真是个累人。因此,看起来我必须重写大量代码才能使用以下备选方案之一:
*XNA
*Direct3D10/11API(就像你在VC++中使用的一样)
*OpenGL
*一些其他选项,比如SlimDX
我正在寻找一个解决方案,它是:
*向后兼容(即Vista和XP)
*向前兼容(我不想学习一个新系统,只是为了在一年内放弃它并学习另一个系统)
*面向对象友好--我有数千行代码要重写。编写非托管代码没有问题,但类似的OO解决方案可能会减少移植时间。
我不可能是第一个遇到这个问题的人。其他人找到了什么解决方案?
发布于 2012-05-10 20:53:31
我的猜测是,您的应用程序是作为AnyCPU构建的,引用了x86程序集,但是您的Win7机器是x64。将应用程序构建为x86可能会解决这个问题。
https://stackoverflow.com/questions/10528788
复制相似问题