Loading... ## 前言 在使用Windows系统的时候,由于软件版本不停迭代,对相对较老的系统的适配性越来越差,经常会遇到“计算机中丢失api-ms-win-****.dll”的报错提示,本文将讲解如何解决这样的问题。 以Python封装的程序为例,根据Python官方的计划,Python从3.9版本开始将无法在win8以下的系统上运行,这也意味着使用Pyinstaller或Nuitka等编译程序封装Python程序时,会出现无法在Windows7等系统上运行的问题。主要原因也是系统的动态链接库文件(DLL)缺失 **懒人建议直接跳转解决方案3** ## 错误提示 大部分情况下,可能出现类似下方的提示,即计算机中丢失“ api-ms-win-crt-locale-l1-1-0.dll”或者“api-ms-win-core-path-l1-1-0.dll”等依赖库 ![image.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/10/1205318581.png) 使用Nuitka、Pyinstaller编译时,如果引用到相关的库,同时禁用了终端(如Nuitka设置了 `--windows-disable-console`),也可能不会弹出相应的弹窗,直接没有任何反应。这种情况其实是程序启动后在极快时间内退出导致的,报错信息可能会出现在终端中,但是终端窗口被禁用了无法显示报错信息。 ## 解决方案1 比较慢但是最原始的方法——缺啥补啥 根据系统提示,前往DLL文件下载网站下载对应的DLL文件并安装至正确位置 ### 操作步骤 1. 这里以[DLL‑files.com](https://cn.dll-files.com/)网站为例,进入网站后直接搜索DLL文件名称即可,如 `api-ms-win-core-path-l1-1-0.dll` ![image.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/10/1617386885.png) 2. 在搜索结果页选择匹配的dll文件,点击跳转详细页面,如下图 ![image.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/10/2867245506.png) 3. 下载对应的dll文件,根据位数放置于对应的目录下(见下一步) ![image.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/10/3097425665.png) 4. 将下载的dll文件复制至系统文件夹 首先需要知道自己系统的位数(32位、64位,x86是32位的、x64是64位),具体方式参考下图或[微软的文章](https://support.microsoft.com/kb/827218)进行判断 [![image.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/10/2546136305.png)](https://support.microsoft.com/kb/827218) 之后根据文件本身的位数,参考下方的默认地址,将文件放在对应文件夹中 默认地址如下: **对于32位系统:** 文件只有32位的,根据系统版本不同防止在不同位置: `C:\Windows\System` (Windows 95/98/Me) `C:\WINNT\System32` (Windows NT/2000) `C:\Windows\System32` (Windows XP, Vista, 7, 8, 8.1, 10) **对于64位系统:** 32位的 DLL 文件放置在 `C:\Windows\SysWOW64\` 64位的 DLL 文件放置在 `C:\Windows\System32\ ` **注意!文件必须正确放置,否则可能出现0xc000007b 报错,该报错由32 位 环境和 64 位环境发生混淆导致** 5. 如果还是没有解决,则可能需要向系统注册对应的DLL文件 以**管理员身份**运行一个终端(命令提示符),并按系统类型不同进行下面的操作: 注意将其中的{filename}替换为dll的名称 **对于32位系统:** - 32位系统安装32位文件: ```powershell regsvr32 {filename} ``` **对于64位系统:** - 64位系统安装32位文件: ```powershell C: cd c:\windows\syswow64\ regsvr32 {filename} ``` - 64位系统安装64位文件: ```powershell regsvr32 {filename} ``` ### 举个例子 我的电脑是64位(x64)的,我需要下载上方的32位的 `api-ms-win-core-path-l1-1-0.dll`文件,那么我需要放置在 `C:\Windows\SysWOW64\`目录下。如果还是报错,则用管理员身份打开命令提示符,执行下面的指令 ```powershell C: cd c:\windows\syswow64\ regsvr32 api-ms-win-core-path-l1-1-0.dll ``` 如果我的电脑是32位(x86)的Windows 7系统,我需要下载上方的32位的 `api-ms-win-core-path-l1-1-0.dll`文件,那么我需要放置在 `C:\Windows\System32`目录下。如果仍然报错,则用管理员身份打开命令提示符,执行下面的指令 ```powershell regsvr32 api-ms-win-core-path-l1-1-0.dll ``` ## 解决方案2 使用Windows的系统修复工具解决,原文:Windows10及以上的系统见[在 Windows 中使用系统文件检查器 - Microsoft 支持](https://support.microsoft.com/zh-cn/windows/%E5%9C%A8-windows-%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6%E6%A3%80%E6%9F%A5%E5%99%A8-365e0031-36b1-6031-f804-8fd86e0ef4ca)Windows8及以下系统见[使用系统文件检查器工具修复丢失或损坏的系统文件 - Microsoft 支持](https://support.microsoft.com/zh-cn/topic/%E4%BD%BF%E7%94%A8%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6%E6%A3%80%E6%9F%A5%E5%99%A8%E5%B7%A5%E5%85%B7%E4%BF%AE%E5%A4%8D%E4%B8%A2%E5%A4%B1%E6%88%96%E6%8D%9F%E5%9D%8F%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6-79aa86cb-ca52-166a-92a3-966e85d4094e) **此方案仅限于由于用户操作,错误地删除了位于动态链接库存储文件夹下的Dll文件时有效。其主要原理为从本地备份中拷贝缺失的Dll文件。如果系统本身就缺少该文件则不能使用此方案** ### 操作步骤 使用管理员身份运行命令提示符,并**逐行**执行下面的命令行: ```powershell DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow ``` ## 解决方案3 使用已经完成集成的动态链接库修复工具: 此处仅对工具进行介绍,不对工具安全性或可用性做任何保证 ### Direct X修复工具-增强版 工具本来是用来修复Direct X相关问题的,但是增强版中加上了修复C++依赖库的功能,可以解决一部分依赖缺失问题。 **项目地址:**[DirectX修复工具增强版_dx修复工具增强版-CSDN博客](https://blog.csdn.net/VBcom/article/details/7245186?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522C207ECC4-3ABE-4224-BB67-9ABFA712FEA9%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=C207ECC4-3ABE-4224-BB67-9ABFA712FEA9&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-7245186-null-null.142^v100^pc_search_result_base3&utm_term=directx%E4%BF%AE%E5%A4%8D%E5%B7%A5%E5%85%B7%E5%A2%9E%E5%BC%BA%E7%89%88&spm=1018.2226.3001.4187) **下载链接(不保证一直有效):** [DirectX_Repair(Enhanced_Edition).7z - 蓝奏云 (lanzouh.com)](https://zhangyue667.lanzouh.com/DirectXRepairEnhanced) **使用方法:** 下载完成后解压,选择“工具”->"选项",按下图勾选对应配置项,点击“确定”,再点击“检测并修复”即可 ![image.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/10/27319334.png) Last modification:October 14, 2024 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 2 如果觉得我的文章对你有用,请随意赞赏