针对March09SDK =>编译DX 9.0c应用程序无法运行较旧的DX 9.0c DLLs =>问题:)

时间:2009-06-19 16:29:13

标签: c++ directx direct3d9

我无法从主题做一个场景。

我安装了DirectX 9 2009年3月SDK,即9,“sub”-version c,但“sub-sub”-version为41,因此libs(d3dx9.lib d3d9.lib)将导出链接到dxd3d_41。 DLL。

当我尝试在具有DX9.0c而不是2009年3月的可再发行的机器上运行我的应用程序时会发生什么现在显而易见:),它失败了,因为它无法找到dxd3d_41.dll。

这个问题的标准解决方案是什么? 我应该如何编译我的应用程序以支持所有具有DX 9.0c的计算机? 这甚至可以实现吗?

感谢名单

3 个答案:

答案 0 :(得分:1)

您需要安装与您用于编译的SDK相匹配的运行时。

强制它在安装了DirectX9c的所有计算机上工作的唯一方法是使用旧的SDK(第一个9.0c SDK)。但是,我强烈建议避免这种情况。你最好只使用March 09,并在应用程序安装的同时安装March运行时。

答案 1 :(得分:1)

最简单的解决方案是链接到下载页面上的Microsoft DirectX最终用户运行时更新程序,并告诉人们首先运行它以确保在安装应用程序之前运行时组件是最新的。

之后,下一个最简单的事情是将必要的运行时更新程序与应用程序捆绑在一起,让用户在运行安装程序之前运行它。

所有这些都记录在SDK文档中。

答案 2 :(得分:0)

规则是,如果链接到d3dx9,那么您需要处理以确保安装了所需的redist运行时组件。

在DXSDK文档中查看“游戏开发者的DirectX安装”页面。