我有一些用 C# 编写的 DirectX 项目,需要专门通过 Visual Studio 2012 运行。
所有这些项目都使用名为“Microsoft.DirectX”的命名空间。
Microsoft Windows SDK 在我的 Windows 8 计算机上完全并成功安装,但是此命名空间仍然无法识别。
我的问题是,“如何结合使用 C#、Visual Studio 2012 和 MS Windows SDK 运行和开发 DirectX 应用程序?”
我有一些用 C# 编写的 DirectX 项目,需要专门通过 Visual Studio 2012 运行。
所有这些项目都使用名为“Microsoft.DirectX”的命名空间。
Microsoft Windows SDK 在我的 Windows 8 计算机上完全并成功安装,但是此命名空间仍然无法识别。
我的问题是,“如何结合使用 C#、Visual Studio 2012 和 MS Windows SDK 运行和开发 DirectX 应用程序?”
我建议你看看SharpDX。这是对 DirectX 的精简托管访问,API 与非托管版本非常相似(SharpDX 是从非托管 c++ 头文件自动构建的)。AFAIK 这是目前使用 DirectX 的最快的托管方法。
一个非常重要的事情可能是您也能够开发 Win8-Metro-Apps。AFAIK 这是不可能/允许的其他所有库。我提到这一点是因为你写了你想在 Win8 上开发/为 Win8 开发,但你没有说什么样的应用程序。Metro-Apps 比 Win8 的 Desktop-Apps 有更多限制。
如前所述,托管 DirectX 已过时。但似乎 XNA 自上一个版本 4 发布以来也不再维护。所以如果你想使用现代 DX10 或 DX11,你会被卡住,因为 XNA 使用的是 DX9。这里的一个替代方案是ANX 框架。这个项目目前处于早期开发阶段,但对我来说似乎很有希望。ANX 可以使用 DirectX 进行渲染,在这种情况下使用 SharpDX。与 XNA(仅与 DirectX9 密切相关)相比,SharpDX 也能够使用其他渲染器(例如,用于 Linux 的 OpenGL)。
托管 DirectX 已过时且不再由 Microsoft 维护,因为它正在被XNA取代。支持托管 DirectX 的最后一个版本是这个(2010 年 2 月发布)。
你也可以试试SlimDX:
SlimDX 是一个免费的开源框架,使开发人员能够使用 C#、VB.NET 和 IronPython 等 .NET 技术轻松构建 DirectX 应用程序。它被设计成一个高效、简单和精益的包装器,它完全包含 Microsoft 的所有游戏和多媒体技术,并将它们公开给托管代码。所有代码都在 MIT/X11 许可下,所有内容都在知识共享署名-相同方式共享许可下。我们的最新版本是 2011 年 3 月,用户和开发人员可以在下载页面上找到它。
您可能需要Microsoft XNA。