none
Win7下DirectX的dll依赖问题 RRS feed

  • 问题

  • 我利用VS2013编写了一个32位DX11程序,需要依赖d3dcompiler_47.dll。编译完成的程序可以在任何win8环境下运行,但是不能在win7下运行,会提示缺少d3dcompiler_47.dll。如果win7环境中安装有VS2013,则会提示缺少api-ms-win之类的dll,据说明好像是一些不支持win7的api。如在win7下利用VS2013编译代码,得到的程序也不能运行。请问我该怎么解决这个问题?
    2015年2月19日 16:17

答案

  • d3dcompiler_47.dll是Windows 8的一部分。因为你要支持没有这个DLL的Windows版本,所以你仍旧需要在安装程序中打包这个DLL。你用的任何一个操作系统没有的DLL(比如Visual C++的DLL)也都需要打包。你的程序不能运行代表你的安装程序有问题,对于你这个具体情况来说,则是你忘记写一个安装程序了。

    微软没有提供直接链接api-ms-win的dll的方式,你不应该认为缺少这些DLL会造成问题。这些延迟加载DLL的代码只在操作系统中存在它们的时候才会被运行。



    Visual C++ MVP

    • 已标记为答案 莱纳德 2015年2月21日 17:46
    2015年2月19日 17:29
    版主