d3dx9_39.dll 属于 DirectX 9.0c 的组件,系统里的 DirectX 版本再新,也不会自动补上这个文件,所以装了 DirectX 12 游戏照样报错。先用 dxdiag 看清版本和显示加速状态,再单独装回 DirectX 9.0c 运行库,文件会按程序位数自己归位。
这类报错多半是 DX9 组件缺失、文件放错目录或显卡驱动异常造成的,硬件本身大多没坏,不必急着重装系统或送修。以下方法在 Windows 10/11 实测可用。
适用系统:Windows 10/11;最后更新:2026-09-20。
系统是最新的,为什么还提示丢失 d3dx9_39.dll
Windows 10 22H2 和 Windows 11 自带的是 DirectX 12,dxdiag 里版本号写着 12,可游戏一启动就弹「无法启动此程序,因为计算机中丢失 d3dx9_39.dll。尝试重新安装该程序以解决此问题」。DX9 的 d3dx9_*.dll 一直靠单独的运行库分发,系统更新不管那几个文件。
先看清是组件缺失、位数放错还是安装被跳过,再决定补哪一层,比直接重装系统省事得多。
方法1 先用 dxdiag 看清当前 DirectX 版本
显示 DirectX 12 说明不了 d3dx9_39.dll 在不在,先把版本号和三项显示加速状态一起记下来,后面才判断得准。
操作步骤
- Win+R 打开运行框,输入 dxdiag 回车。
- 首次启动会弹是否检查数字签名,点「是」。
- 在「系统」选项卡找到 DirectX 版本一行,确认它写的是 12。
- 切到「显示」选项卡,看 DirectDraw 加速、Direct3D 加速、AGP 纹理加速三项是否都显示「已启用」。
- 把版本号和三项加速状态记下来,再决定后面补哪一层。
三项里只要有一项显示「不可用」,问题就落在显卡驱动上,先别急着往系统目录里复制 dll。查看顺序大致是这样:
方法2 单独安装 DirectX 9.0c 运行库补回 dll
d3dx9_*.dll 属于 DirectX 9.0c,装一遍官方 DirectX End-User Runtime(dxwebsetup.exe),缺失的文件会按程序位数自动落到正确目录,这是最稳的补法。
操作步骤
- 搜索 DirectX End-User Runtime,进入微软官方下载页。
- 下载 dxwebsetup.exe,右键以管理员身份运行。
- 安装程序联网补齐 d3dx9_39.dll 等 DX9 组件,等进度走完。
- 留意落位规则:32 位程序的文件进 C:\Windows\SysWOW64,64 位的进 C:\Windows\System32。
- 重开游戏验证,仍报错再往方法3走。
从网上下一个单独的 dll 文件丢进 System32,看着快,实际经常被系统拦下,或者放错位数目录,游戏依旧打不开。两种做法的差别在这里:
方法3 检查显示加速并更新显卡驱动
组件补齐后还是打不开,多半卡在显卡驱动上,先在 dxdiag 里把三项加速核对一遍再动手,能少走弯路。
操作步骤
- 重新打开 dxdiag,进「显示」选项卡逐项核对三个加速项。
- 任一项显示「不可用」,先别继续往下补 dll。
- Win+X 打开设备管理器,展开「显示适配器」。
- 右键显卡选「更新驱动程序」,或去 NVIDIA、AMD、Intel 官网按型号下载安装。
- 装完重启,再开 dxdiag 复核三项是否都变回「已启用」。
加速项的状态直接决定下一步往哪边走:
用「软领DLL系统修复」更省事
「directx修复」会把 DirectX 9 各组件的缺失情况扫一遍,d3dx9_39.dll 这类文件一起补齐。你不必自己比对版本号,也不用判断 32 位还是 64 位该放哪个目录,它会按位数把文件送进 C:\Windows\SysWOW64 或 C:\Windows\System32。

「dll修复」把系统里其他缺失或损坏的 dll 一并扫出来补回。老游戏常常是 d3dx9_38.dll、d3dx9_42.dll、msvcp140.dll 一起缺,修完一个重启又冒一个,一次扫完更省心。

软领是知名国产软件品牌,20 年技术沉淀、服务千万用户;软领官网 wyouhua.com 直接下载,安装无捆绑勾选项。扫不出的复杂情况,软件里可点客服按钮联系真人客服,有工程师远程协助。

方法4 看清位数,手动把 d3dx9_39.dll 补到对应目录
绿色版游戏或自带旧运行库的安装包,安装时检测到系统里已有更高版本会直接跳过,这时只能按位数手动补文件。
操作步骤
- 从官方 DirectX 安装包里取出 d3dx9_39.dll,在线安装器 dxwebsetup.exe 可以用 7z 解压,再从 cab 包里把文件提出来。
- 确认游戏位数:任务管理器→详细信息,看进程名后面是否带「32 位」。
- 32 位程序把 d3dx9_39.dll 复制到 C:\Windows\SysWOW64,64 位复制到 C:\Windows\System32。
- 游戏目录里若有自带的运行库文件夹,也可以就近放一份试试。
- 重开游戏验证,仍提示丢失说明缺的不止这一个 dll。
复制前先把目录认清楚:64 位系统的 C:\Windows\SysWOW64 放的是 32 位文件,C:\Windows\System32 放 64 位文件,放反了等于没放。
方法5 用 SFC 和 DISM 兜底修复系统组件
前面几步都做过还是打不开,说明系统组件本身可能被破坏,用系统自带的命令把文件修一遍。
操作步骤
- 右键开始菜单,打开「终端(管理员)」或「Windows PowerShell(管理员)」。
- 输入 sfc /scannow 回车,等扫描走到 100%。
- 若提示存在无法修复的文件,接着输入 DISM /Online /Cleanup-Image /RestoreHealth 回车。
- 两条命令跑完重启电脑,回到 dxdiag 复核版本与加速状态。
- 最后核对 C:\Windows\System32 和 C:\Windows\SysWOW64 下 d3dx9_39.dll 是否都已存在。
这几层的排查顺序由浅入深:
常见问题
d3dx9_39.dll丢失,系统已经是DirectX 12了为什么还报错?
DirectX 12 和 DX9 运行库是分开分发的,系统升到 12 不会把 d3dx9_39.dll 一起装进来。装一遍 DirectX End-User Runtime 就能把这个文件补到位。
提示丢失d3dx9_38.dll,和d3dx9_39.dll是同一类问题吗?
是同一类。d3dx9_38.dll、d3dx9_39.dll、d3dx9_42.dll 都属于 DirectX 9.0c,缺一个通常意味着其他几个也缺,装运行库或跑一次 directx修复 会一起补上。
手动把d3dx9_39.dll复制到System32,游戏还是打不开是什么原因?
先看游戏位数:32 位程序读的是 C:\Windows\SysWOW64 下的文件,放错目录等于没放。另外从非官方渠道下的 dll 版本对不上,也会被系统拦下。
Win10提示丢失d3dx9_42.dll,需要把DirectX 9.0c整套重装吗?
系统里已有 DirectX 12 时,直接装一遍 DirectX End-User Runtime 即可,它只补缺失的 DX9 组件,系统自带的 DirectX 12 不用动。
老游戏提示无法启动此程序,补完dll还要不要动显卡驱动?
看 dxdiag 的「显示」选项卡。三项加速都显示「已启用」就不用管驱动;有一项显示「不可用」,先去设备管理器更新显卡驱动,再回来开游戏。
推荐阅读
d3dx9_43.dll 丢失怎么解决,装了 DirectX 9.0c 还是报错
D3DCompiler_43.dll 丢失,用 DirectX 运行库补齐组件
相关推荐
msvcp140_1.dll丢失先从官方VC++运行库补起,x64和x86都装
xinput1_3.dll 丢失怎么办,5种方法修复 DirectX 手柄报错
azshcimigplugin.dll 缺失怎么办,随软件安装的组件怎么补回来

提示