音箱仿真软件LEAP_EnclosureShop是一款功能强大,又容易上手的音箱仿真工具。特别是其衍射分析功能,还可以进行3D布局,非常好用,但是现用的绿化版却有一个BUG,在一些电脑上打开3D布局后再退回到主界面会出现闪退的现象。这里针对这个问题,我反复折腾了很久,也摸索出几个解决方案。接下来展开讲讲。
首先,应用最近很火的人工智能寻求解决方案,先分析原因。在LEAP_ENC闪退后,打开事件查看器→Windows日志→应用程序。
在中间的应用程序时间中,点击错误事件,下面会出现详细的分析。
错误应用程序名称: LEAP_ENC.EXE,版本: 5.1.0.334,时间戳: 0x2a425e19
错误模块名称: KERNELBASE.dll,版本: 10.0.19041.6093,时间戳: 0x11227201
异常代码: 0xc000041d
错误偏移量: 0x0013b552
错误进程 ID: 0x6d8
错误应用程序启动时间: 0x01dc035793cc7bef
错误应用程序路径: D:\Software\leap\LEAP_ENC.EXE
错误模块路径: C:\Windows\System32\KERNELBASE.dll
报告 ID: 688030e6-dacd-49e6-95d8-762608a127f9
错误程序包全名:
错误程序包相对应用程序 ID:
显示问题出在KERNELBASE.dll这个模块,上网搜索解决方案,大多是针对KERNELBASE.dll进行修复。给出如下解决方案:
1. 运行系统文件检查器(SFC)扫描
①打开命令提示符(以管理员身份)。
②输入命令 sfc /scannow 并按回车。
③等待扫描完成,如果有损坏的文件,SFC 会尝试修复它们。
2. 执行 DISM 命令
如果系统文件损坏严重,SFC 可能无法修复。你可以尝试使用部署映像服务和管理(DISM)工具:
①打开命令提示符(以管理员身份)。
②输入命令 DISM.exe /Online /Cleanup-image /Restorehealth 并按回车。
③等待操作完成。
通过以上操作并不能解决LEAP闪退的问题,看样子问题可能不出在KERNELBASE.dll模块上。那为什么系统会判定问题出在KERNELBASE.dll模块上呢?想要知道这个问题,首先得了解KernelBase.dll这个文件到底是什么东西。
KernelBase.dll是一个NT内核系统的底层API接口的DLL文件,与另外一个kernel32.dll有相同的功能。这个API接口主要是对接我们常说的运行库(C++、.net framework、DirectX等)。而我们安装运行的软件是通过上述运行库,调用KernelBase.dll或kernel32.dll作为初始化执行的工作。系统执行也通过KernelBase.dll或kernel32.dll作为初始化,调用运行库运行程序。
我们启动应用程序的时候,操作系统执行需要初始化,而初始化调用到API的话,KernelBase.dll就是其一。KernelBase.dll的API关联到系统安装的所有相关运行库,如果返回未安装的话,则程序进入异常模式,提示问题报错。导致运行库或者程序的错误无法反馈到KernelBase.dll的API接口上(但错误信息已经从应用程序日志中反馈出来)。windows发现程序运行异常,就只能怪到KernelBase.dll这个API接口上了。
可是LEAP闪退,没有任何提示。按上面的逻辑,我们可以试试安装LEAP所需的运行库。我们所用的LEAP是2005年的版本,那就对应下载Microsoft Visual C++ 2005以及老版本的.NET framework试试。然而,折腾完之后然而并没有什么用。下面试试我的经验法则。