d3d程序的特殊dll依赖
坑爹的D3D程序,为什么依赖d3dref9.dll、D3DCompiler_42.dll,却不直接报错提示。。。照常规的思路,缺dll应该弹个对话框出来,这样程序员才好放上对应的dll。
举些例子说吧:
1. 用了HLSL的D3D程序,Release的exe如果放到没有D3DCompiler_xx.dll的机子上跑,会无提示地Crash,让你抓狂。
2. 最近用d3dsdk的texconv.exe转dds图片(xp系统下),发布的exe没有带d3dref9.dll,于是产生了“Failed to create D3D device”,错误。网上的解决方案是在目标机器安装D3D的SDK,其实拷贝d3dref9.dll到exe程序目录下即可。刚开始发现这个错误的时候,用VC的depends.exe工具看texconv.exe的dll依赖,提示有个延迟载入的dll无法识别出来,估计就是d3dref9.dll了。给我来阴的。
当然,有可能是我孤陋寡闻,也许其他程序员都知晓,就我蒙在鼓里。又也许D3D sdk document说得很明白,只是我没认真翻阅。。。