选项对话框一弹就停在 atl140.dll,ATL 窗口库按位数补
atl140.dll 只在选项对话框弹出时缺失,按 Visual C++ 2015-2022 可再发行组件的位数、隔离区和系统检查分开处理。
管理工具的主列表能刷出来,一点「选项」弹出对话框才提示找不到 atl140.dll。它是 Visual C++ 2015 及以后附带的 ATL 窗口库,负责这一类对话框和控件宿主,不是 atl100,也不是 .NET 的窗口。先记下是哪一个对话框、进程是 32 位还是 64 位,也可以先打开 https://www.zhiniao66.com/dllxf.html 看检查说明,不要把同名文件丢进系统目录。

一、atl140.dll 文件的来源
atl140.dll 随 Visual C++ 2015-2022 可再发行组件发布,很多桌面管理工具把它放在程序目录或系统运行库目录。只做系统更新,不一定把这一份 ATL 窗口库装回来。先看软件目录里官方安装包是否带过它,再看清理记录有没有把它移走。

二、atl140.dll 在设置页第一次弹出时的触发场景
主列表还能刷新,说明数据模块还在。选项对话框第一次要创建 ATL 控件宿主时,才会加载 atl140.dll。同一台电脑上不用这个对话框的软件仍然正常。刚重装系统、只装了另一代运行库,或把 2015 这一代组件卸掉,都会停在弹出对话框这一步。

三、atl140.dll 兼容性问题
64 位电脑上的 32 位管理工具仍要 x86 那一份 atl140.dll,只装 x64 可再发行组件,对话框一弹还是会停。它和 atl100、atl110 不是同一个文件,不能靠改文件名顶替。先对照这款工具的安装说明写的位数。
四、设置页打不开之后处理 atl140.dll 的多种解决办法
五种做法分开做。每做完一项,只再打开原先失败的那个选项对话框。
方法一:打开浏览器,到 Microsoft 官网下载 Visual C++ 2015-2022 可再发行组件的官方安装包。64 位电脑把 x86 和 x64 两个安装包都装一遍,不要用来源不明的单个文件。安装结束重启,再打开原来的管理工具,弹出原先失败的选项对话框,确认提示是否消失。
方法二:进入设置里的已安装应用,找到这款管理工具。有修改或修复就先执行修复;没有修复入口时,从软件官网下载同版本完整安装包,对这款程序执行覆盖安装。完成后完全退出,只重试原先失败的那一个对话框。
方法三:若对话框仍分不清是 ATL 窗口库没装全,还是程序目录被改过,可先用智鸟dll修复的工具核对 atl140.dll 及相关组件,它适合自动检查 DLL 缺失、运行库异常和相关组件问题,并按提示一键修复,不需要手动判断放置目录。使用步骤(以 智鸟dll修复的工具 为例):首先打开电脑,进入【此电脑】以后在顶部文件路径栏目输入:dll修复.site(鼠标移到右侧的箭头点击)或者直接点击回车键(Enter)打开检查工具。也可直接打开 https://www.zhiniao66.com/dllxf.html 查看说明。扫描结束后只勾选和这次报错对应的项目,重启这台电脑,再打开原来的管理工具,弹出原先失败的对话框,确认提示是否消失。窗口库本身仍应随官方可再发行组件回来,不要把检查工具写成能替换软件私有模块。
方法四:打开 Windows 安全中心的保护历史,再到第三方防护软件的隔离区,按第一次弹对话框失败的时间查找 atl140.dll。确认路径、签名和安装来源都可信后再恢复,并把该目录加入信任,随后重启,复测原来的对话框。
方法五:右键开始菜单,打开终端(管理员),先输入 sfc /scannow 并等待完成;组件存储仍报损坏时再输入 DISM /Online /Cleanup-Image /RestoreHealth。执行完重启,重新打开原软件验证。系统检查排的是系统层损坏,不能顶替 VC++ 自己的 ATL 窗口库。

五、atl140.dll 安全性考量
来源不明的同名文件即使让对话框闪一下,签名对不上也会被防护软件再次隔离。ATL 窗口库应跟着微软的可再发行安装包走。授权组件和软件私有模块不要写成都能用同一条记录补上。

六、手动替换 atl140.dll 的操作风险
把网页上的同名文件覆盖进系统目录,32 位对话框和 64 位路径会对不上,后面的运行库更新也会把这一份冲掉。不要手动替换。对话框应在装完对应位数的官方组件后再打开。

七、如何预防 atl140.dll 在卸载残留后再次丢失
卸载旧版管理工具前,先看它是否和别的软件共用 Visual C++ 2015-2022。清理工具不要把 ATL 窗口库和 .NET 当成同一项删掉。下次再看到这个文件名,先对照是不是又只在弹出选项对话框时失败。
延伸参考