找不到dll問題之第一課《DirectX篇》
很多人遇到彈窗報錯找不到(丟失、缺失)dll問題時,會習慣性到百度搜索下載,然后復制到system32目錄,之后管理員cmd執(zhí)行命令“regsvr32 dll文件路徑”命令修復。因為網(wǎng)上大部分教程都這么教的。
然而這么做會遇到不少問題:
下載的dll文件版本不對不能用。文件版本號不同不兼容;還可能是64位和32位版本對不上;甚至是不同軟件的同名dll不適合。
下載的dll是流氓下載器或病毒,導致電腦出現(xiàn)更多毛病。
下載的dll不是COM組件,用regsvr32命令注冊報錯。之后又網(wǎng)上到處問人報錯原因。

又有些人會網(wǎng)上下載各種各樣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最終用戶運行時”可以看到運行庫的官網(wǎng)下載地址,下載好后安裝就可以解決上面那些dll缺失問題。


上面工具需要聯(lián)網(wǎng)安裝。如果聯(lián)網(wǎng)了還裝不上報錯,可能是Auto?Uninstaller之類流氓工具篡改了COM組件注冊表權限,導致XAudio和xactengine開頭的dll注冊失敗。