我正在开发一个模拟许多对象之间非常复杂的交互的模拟器,我的意思是数百万。
我使用 XNA 是因为它可以让我轻松完成一些有用的事情,尤其是在渲染方面。
我的问题是我在OutOfMemoryException
模拟几秒钟后就遇到了 s 。我很快意识到我的程序只在 32 位模式下运行,所以我只获得了几 GB 的稍大一点的 RAM。
如何在 64 位模式下运行 XNA 游戏?
XNA 曾经只有 32 位。您可以尝试编译为 64 位,但是您会遇到问题,因为不会加载任何 64 位 XNA 库。我发现试图支持这一点的所有内容都是提醒观众编译为 x86 的评论。
要编译为 x64:右键单击您的解决方案并转到配置管理器。从那里选择 x64 作为您的 Active Solution 平台。您可能必须创建它,然后将所有项目选择为 x64。您也可以尝试构建为 Any CPU,因为您使用的是 64 位 Windows,它应该会自动以 64 位模式启动。
编辑:我发现我的一台旧 VM 上安装了 XNA 4。似乎没有办法强制它编译为 64 位。即使我尝试创建一个新平台,它也只允许我选择 x86。
这并不能直接回答问题。我已经赞成 TyCobb 的回答。
我过去也遇到过同样的问题。
您是否考虑过切换到SlimDX?它是 DirectX 的包装器,允许您使用 DirectX 开发 .Net 应用程序。根据文档:
SlimDX sports complete support for both 32 and 64 bit targets.
它可能不像 XNA 那样用户友好,但我认为它对你来说可能是一个不错的选择。