当重新分发d3dcompiler_47.dll时,出现api-ms-win-core-libraryloader-l1-2-0.dll缺失的问题。

3
根据Windows 8.1 DirectX SDK的指示,d3dcompiler_47.dll现在需要与任何Direct3D程序一起重新分发。但是当我在一个与该dll文件在同一文件夹下的Windows 7机器上运行程序时,出现了“api-ms-win-core-libraryloader-l1-2-0.dll缺失”的错误。快速的谷歌搜索表明这可能是由于某个版本混合导致的 - d3dcompiler_47.dll是否与此机器不兼容?我已经检查确保安装了DirectX 11,这也是我正在使用的版本,但无法解决此问题。

1
从现在开始,d3dcompiler_47.dll需要与任何Direct3D程序一起重新分发。什么?你在哪里看到的?微软强烈反对使用D3DCompiler,建议使用离线编译代替。 - Ivan Aksamentov - Drop
这正是我想表达的。你链接中的一句话:正如我们多年来一直推荐的那样,开发人员应该在构建时编译他们的HLSL着色器,而不是依赖于运行时编译。 - Ivan Aksamentov - Drop
@Drop 这是一个编辑器,允许低级别的HLSL编程。 - NmdMystery
1个回答

10

如果你从Windows目录中复制了d3dcompiler_47.dll文件,那么这样做可能会出错。因为它不适用于较旧版本的Windows系统。

必须使用可再分发版本。你可以在Windows SDK目录中找到它,例如大多数计算机上的C:\Program Files (x86)\Windows Kits\8.1\Redist\D3D。根据编译程序时所用的平台目标选择x86或x64版本。


那就是了。我只是搜索并复制了第一个结果。 - NmdMystery

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接