找不到dll问题之第一课《DirectX篇》
很多人遇到弹窗报错找不到(丢失、缺失)dll问题时,会习惯性到百度搜索下载,然后复制到system32目录,之后管理员cmd执行命令“regsvr32 dll文件路径”命令修复。因为网上大部分教程都这么教的。
然而这么做会遇到不少问题:
下载的dll文件版本不对不能用。文件版本号不同不兼容;还可能是64位和32位版本对不上;甚至是不同软件的同名dll不适合。
下载的dll是流氓下载器或病毒,导致电脑出现更多毛病。
下载的dll不是COM组件,用regsvr32命令注册报错。之后又网上到处问人报错原因。

又有些人会网上下载各种各样dll修复工具(见过有下载安装了三四个这类工具的电脑),这些工具除了VBcom大佬制作的DirectX Repair,又或者是微软常用运行库合集等工具,其余大部分收费。付费了还不包解决问题,而且还有不少是套牌的DirectX Repair修复工具。
实际上遇到这类问题并不用下什么dll修复工具,微软官方就有提供运行库安装程序。以缺少DirectX运行库而言:
一般是缺失下面这些dll时需要安装DirectX运行库:
D3DCompiler_33.dll~D3DCompiler_43.dll(包含34、35、36...42这些)
d3dcsx_42.dll、d3dcsx_43.dll
d3dx10.dll、d3dx10_33.dll~d3dx10_43.dll
d3dx9_24.dll~d3dx9_43.dll
x3daudio1_0.dll~x3daudio1_7.dll
xactengine2_0.dll~xactengine3_7.dll
XAPOFX1_0.dll~XAPOFX1_5.dll
XAudio2_0.dll~XAudio2_7.dll
xinput1_1.dll~xinput1_3.dll
其中只有XAudio和xactengine开头的dll需要用regsvr32命令注册。
搜索“directx最终用户运行时”可以看到运行库的官网下载地址,下载好后安装就可以解决上面那些dll缺失问题。


上面工具需要联网安装。如果联网了还装不上报错,可能是Auto Uninstaller之类流氓工具篡改了COM组件注册表权限,导致XAudio和xactengine开头的dll注册失败。