最近我买了一台装有Windows 7的新PC并安装了C#2010 Express。我在C#2008 Express上的Vista机器上写了很多软件。当我尝试将托管的D3D应用程序迁移到2010时,它们都在运行时崩溃,并显示错误“不是有效的Win32应用程序”。经过一些故障排除我得知它是因为MS不再支持托管DirectX。多么拖累。所以看起来我必须重写大量代码才能使用以下替代方法之一:
* XNA
* Direct3D 10/11 API(就像你在VC ++中使用的那样)
* OpenGL的
*其他一些选择,比如SlimDX
我正在寻找一个解决方案:
*向后兼容(即Vista和XP)
*前向兼容(我不想学习新系统,只需要放弃它并在一年内学习另一个系统)
* OO友好 - 我有数千行代码要重写。编写非托管代码时没有问题,但类似的OO解决方案可能会减少移植时间。
我不能成为第一个遇到这个问题的人。其他人发现了什么解决方案?
答案 0 :(得分:1)
我的猜测是你的应用程序是作为AnyCPU构建的,引用x86程序集,但你的Win7机器是x64。将应用程序构建为x86可能会解决问题。