问题

在运行 .exe 程序时弹出 "由于找不到 xxx.dll,无法继续执行代码" 的错误,导致程序无法执行

由于找不到xxx.dll无法继续执行代码1.png


原因

缺少必要的运行库文件,安装该 .dll 运行库文件即可


解决

在网上自行下载缺少的 .dll 文件,直接搜 "xxx.dll" 下载即可(因为每个人缺少的运行库各不相同,无法提供统一的 DLL 文件,但是这些文件在网上都是可以下载到的)

我这里提供一个下载 .dll 文件的网站:免费下载缺失的 DLL 文件 | DLL‑files.com

通常来说,这样的 .dll 库文件我们需要下载两个,一个是 32 位的,一个是 64 位的

我这里就以图片中所缺少的 ucrtbased.dll 为例:

  1. 进入网站:免费下载缺失的 DLL 文件 | DLL‑files.com

  2. 在搜索框中搜索 ucrtbased.dll

由于找不到xxx.dll无法继续执行代码2.png

  1. 往下翻,找到这个位置:

由于找不到xxx.dll无法继续执行代码3.png

有的 .dll 文件会有特别多的版本,不需要管,只需要看好架构(Architecture)即可

Architecture 64 代表 64 位,Architecture 32 代表 32 位

  1. ucrtbased.dll 的 64 位和 32 位文件各下载一个,版本(Version)随意,通常越新的版本越好

注意:

一定要留意下载到本地的时候哪一个压缩包是 32 位的,哪一个压缩包是 64 位的,不要搞混了

解压后,我这里以文件夹的命名来区分 32 位和 64 位,实际你下载的时候两个文件命名是相同的

由于找不到xxx.dll无法继续执行代码4.png

  1. 首先了解一点基础知识:

在 64 位 的 Windows 系统中

  • 放置 32 位 DLL 文件的默认路径为:C:\Windows\SysWOW64\
  • 放置 64 位 DLL 文件的默认路径为:C:\Windows\System32\

ucrtbased_32 文件夹 内的 ucrtbased.dll 复制到 C:\Windows\SysWOW64\ 路径下
ucrtbased_64 文件夹 内的 ucrtbased.dll 复制到 C:\Windows\System32\ 路径下

  1. 再次运行报错的 .exe 文件,观察问题是否解决

如果只是缺少 ucrtbased.dll 这一个 DLL 库文件,那么到此为止,程序基本就已经可以正常运行了

例如我再次打开刚刚报错的 exe 程序如下图:

由于找不到xxx.dll无法继续执行代码5.png

如果依然提示缺少其他的 DLL 文件,继续按此教程依次下载其他缺失的 DLL 文件即可

如果上述操作都试过了,但 exe 程序仍然无法运行

可能是因为 DLL 文件虽然复制到了目录下,但是并未注册,可以自行搜索注册 DLL 文件的教程,例如:如何注册dll文件-百度经验

因为我没有遇到过,我按照上述操作就已经成功解决问题,所以无法提供教程,但是不排除有的人会遇到这种问题