Windows上的DirectX编程,首选方式是什么?

时间:2009-04-23 09:31:07

标签: silverlight directx

我需要以华而不实的方式开发业务应用程序的一部分。因此想看看我是否可以使用DirectX。这就是我得到的。

  1. 首先我读到了如何使用C / C ++就像是徒步拍摄,我应该使用DirectX.NET。我不能不同意。这是21世纪。

  2. 下载了DirectX SDK但无法在其中找到.NET程序集。现在搜索网络显示,DirectX .NET(称为MDX)现已过时(2006年发布)。而且我应该使用XNA,而主要是为XBOX开发的。

  3. 已下载XNA。但它不会安装,因为我没有C#.NET Express 2005 SP1。在我的VS Pro 2005上安装了SP1。但它仍然无法安装。它需要Express 2005而且恰好是单一版本,而不是Pro,显然不是2008年。

  4. 沮丧地试图下载免费的C#.NET Express。但是来自MS的链接说C#.2005实际上下载了C#.2008,因为C#.2005现在已经过时了。

  5. 现在我读到MS现在正在推动WPF / silverlight的发展。而且XNA不支持DX10,Vista不附带DX9。

  6. 现在我有两个选择:

    1. 回到15年前,用普通的旧C / C ++编写代码。至少C证明自己是永恒的。

    2. 尝试使用silverlight。

    3. 你的建议是什么?或者我错过了什么?

      Udpate:想补充说DX10与任何其他DX版本都不向后兼容。 SlimeDX看起来真的很有希望。但作为一个非常新的软件包,我不确定文档和教程会有多大帮助。

      Udpate 2:在搜索我使用的XNA下载时谷歌出现的第一个下载链接似乎不是最新的。感谢DouglasH提供v.3的链接。下载它。可能它会起作用。

      然后是agian。我应该切换到WPF / Silverlight吗?或者去XNA?哪一个更好记录和未来专业?

      更新更新:Vista真的没有预装DirectX 9 [通过谷歌检查]。至少它去年没有在我的机器上。谷歌搜索显示我必须在从MS下载后在Vista上手动安装DirectX 9。但我的表现失败beucase硬件驱动程序DX9 / vista丢失或无法正常工作。我认为它不受支持。

6 个答案:

答案 0 :(得分:4)

MS已停止支持.net DirectX库。有一个名为SlimDX的开源替代方案,它运行良好。文档留下了一些不足之处,但是使用DirectX C ++文档和一些常识可能会让人感到困惑。

答案 1 :(得分:4)

WPF做了相当不错的3D东西,并且有很多鱼眼面板和源代码可供WPF使用,是的,因为MS已经采用了他们的技术,在今天的条件下,我们不能只关注MS的一种技术制作完整的商业应用程序。

当然我们也厌倦了使用多种不同版本的技术甚至做最小的部件,但我相信他们通过服务十亿台机器做得很好,它确实不容易但WPF和.NET似乎是最稳定的技术微软以及他们在制作完全管理的操作系统上也花了很多钱。

答案 2 :(得分:2)

如果你回到C或C ++,你可能想看看Simple DirectMedia Layer(SDL)。

恕我直言,它比DirectX容易得多。

网址:http://www.libsdl.org/

答案 3 :(得分:2)

DirectX完全向后兼容。任何DX9应用程序都将在Vista和DX10上运行。至于XNA和VS2005 - 这有点奇怪。那会让XNA变得毫无用处。检查一下你是否错过了什么。

答案 4 :(得分:1)

几点,你下载了哪个版本的XNA。以下是将在Visual Studio 2008上运行的XNA Studio 3.0的链接。http://www.microsoft.com/downloads/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&displaylang=en

第二,我确信希望Vista拥有Direct X 9,因为这是DWM在Vista中运行的直接X的版本。我想你会发现Direct X 9及之前的DLL和Vista中加载的DirectX 10的DLL。或者对于Matter Windows 7也将有DirectX 11(编辑2注意DWM构建在DirectX10上,软件模拟器用于没有3D视频硬件的系统,dx10ondx9驱动程序用于那些使用directx 9卡和当然完全支持directx 10卡)。

编辑

此外,如果您下载了March directx sdk,则下载,directx 9.0c,directx 10,10.1和directX 11的测试版。我将不得不检查DirectX 8.x是否仍然包括在内但DirectX 9是向后兼容大多数平台。

答案 5 :(得分:1)

虽然我从未直接使用DirectX(稍微使用OpenGL) - 但我会选择WPF。实施起来最不痛苦(透明度,渐变,画笔,动画等),它提供了我自己所看到和体验过的可靠性能。 但是,它不是与平台无关的。