文章目录

  • 一、问题1:由于找不到vcruntime140d.dll。无法继续执行代码。重新安装程序可能会解决此问题。
  • 二、问题2:应用程序无法正常启动(0x000007b)。请单击“确定”关闭应用程序。
  • 三、Windows目录下的SysWOW64和System32的问题
  • 四、exe文件调用dll文件的过程

一、问题1:由于找不到vcruntime140d.dll。无法继续执行代码。重新安装程序可能会解决此问题。

最近运行exe文件的时候出现了:“由于找不到vcruntime140d.dll。无法继续执行代码。重新安装程序可能会解决此问题。”

上网找了很多文章,也下了一些软件来修复,发现他们都没有说清楚问题根本原因和解决方法,所以写篇文章来记录解决这个问题的原理和过程。
首先,它是vcruntime140d.dll文件找不到了,就说明程序在我们的电脑上的dll路径当中都没有找到这个dll文件。
大致的顺序是这样的:
1)应用程序所在目录
2)系统目录,GetSystemDirectory获取
3)16位系统目录
4)Windows目录,用GetWindowsDirectory获取
5)运行程序的当前目录
6)Path环境变量
具体的顺序会根据操作系统和注册表SafeDllSearchMode键的值会有所变化。想了解的可以参考我之前的文章《DLL劫持病毒的分析》:https://blog.csdn.net/Onlyone_1314/article/details/108818379
回到vcruntime140d.dll文件找不到的问题,那我们就下载一个vcruntime140d.dll,放在当前exe文件下或者放在Windows目录下都行,放在当前exe文件下就是只让你这次的这个文件调用,放在Windows目录下下次就可以让别的程序也调用。

二、问题2:应用程序无法正常启动(0x000007b)。请单击“确定”关闭应用程序。

开始随便下载了一个vcruntime140d.dll,放在当前exe文件的目录下,又出现了下面这个问题:“应用程序无法正常启动(0x000007b)。请单击“确定”关闭应用程序。”

这里就涉及到另一个问题:操作系统的位数和dll文件的位数。任何一个不匹配,就会出现这个问题。我出现这个问题就是这个test.exe是个32位的程序,我们查看test.exe的基本信息:

发现它是用Visual C++编写的Windows 32位控制台程序。但我下的是一个64位的vcruntime140d.dll:

所以程序是能够找到我的这个vcruntime140d.dll的,没用报之前“找不到vcruntime140d.dll”的错,但是因为位数不匹配导致了“应用程序无法正常启动”。
所以我们重新下一个32位的vcruntime140d.dll文件,放在当前exe文件所在的目录:

运行test.exe:

成功解决问题。

三、Windows目录下的SysWOW64和System32的问题

另外就是关于把应该把dll文件放在Windows目录下的SysWOW64还是System32:
System32是Windows操作系统的系统文件夹,是操作系统的中枢,存放的是64位的系统文件。
SysWOW64(Windows-on-Windows 64-bit)是一个Windows操作系统的子系统, 能够运行32位应用 windows操作系统程序, 并且在所有的64-bit 版本的windows上都存在。
所以我们应该把test.exe需要的dll文件放在SysWOW64文件夹下面:

也能成功解决问题。

下面分别测试把vcruntime140d.dll放在SysWOW64和System32文件夹下
(1)SysWOW64和System32文件夹下都没有vcruntime140d.dll文件:

程序显示找不到vcruntime140d.dll。
(2)vcruntime140d.dll文件放在System32文件夹下:

程序显示找不到vcruntime140d.dll。
(3)vcruntime140d.dll文件放在SysWOW64文件夹下:

程序成功运行。
这样,我们就证明了必须把vcruntime140d.dll文件放在SysWOW64文件夹下,test.exe才能运行。

四、exe文件调用dll文件的过程

我们把test.exe放到一个纯净的64位的windows 7操作系统的虚拟机里,运行test.exe:

它首先报的是缺少ucrtbased.dll,我们下载一个64位的ucrtbased.dll放在当前目录:

它又会报缺少api-ms-win-core-timezone-l1-1-0.dll,我们又下载一个64位的api-ms-win-core-timezone-l1-1-0.dll放在当前目录:

之后的过程我就不一个一个dll文件添加截图了,通过这些我们就可以知道其实就是test.exe程序调用这些dll文件和这些dll文件直接的相互调用,我们只要把它们正确的都添加上,程序就可以正常运行:

应用程序无法正常启动(0x000007b)或者找不到dll文件(以vcruntime140d.dll为例)的原因原理分析和解决方法(亲测已解决)相关推荐

  1. eNSP启动路由器失败,错误代码40解决方法亲测有效

    eNSP启动路由器失败,错误代码40解决方法 "错误代码40" AR设备启动失败问题,个人解决方案 我在网上查找过很多相关的资料,大多都没什么用.我的电脑是win10的系统,我自己 ...

  2. 【亲测已解决】CentOS7 ifconfig commend not fount(命令找不到)

    1.输入命令dhclient,可以自动获取一个IP地址,再用命令ip -a addr查看IP 2.然后输入 yum search ifconfig查找符合这个命令的组件,查找到net-tools.x8 ...

  3. xmind启动闪退解决方法(亲测可用)

    今天打开xmind忽然发现打不开,还以为是自己的软件有问题,结果卸载了重新安装也没用,网上教程很多也解决不了,现在就自己整理一份解决方法: 首先 第一步:找到xmind,找到如图所示两个文件 第二步: ...

  4. 应用程序无法正常启动(0x000007b). 请单击“确定”关闭应用程序的问题

    应用程序无法正常启动(0x000007b). 请单击"确定"关闭应用程序的问题----"腾讯电脑管家" 0x80070652 - 正在进行另一个安装操作,请在继 ...

  5. linux找不到镜像文件,为什么启动u盘找不到镜像文件_u盘启动找不到映像文件的解决方法...

    现在很多人都喜欢用u盘装系统,可是却有人发现u盘启动找不到iso镜像文件,pe装系统找不到镜像文件是怎么回事呢?相信很多人都遇到过这种情况,那么为什么启动u盘找不到镜像文件呢?其实这是因为U盘只是制作 ...

  6. Cefsharp生成的项目在自己电脑上能打开,其他电脑上不行,提示找不到指定文件cefsharp.core.dll

    在自己电脑上生成的项目都能打开,但是在别的电脑上打开就提示,找不到指定文件cefsharp.core.dll 有两种原因 一种是dll没有复制过去,复制整个文件夹的文件过去就行 还有一种情况是目标计算 ...

  7. springboot在启动jar由于配置hibernate的映射文件上classpath导致的!BOOT-INF/classes/!路径出现!号问题解决方法

    springboot在启动jar由于配置hibernate的映射文件上classpath导致的!BOOT-INF/classes/!路径出现!号问题解决方法 参考文章: (1)springboot在启 ...

  8. 应用程序无法正常启动0x000007b,请单击“确定”关闭应用程序(不要着急,先定位问题)

    在使用VS2010调试程序时,程序无法正常启动,然后显示无法启动错误, 因为我能保证程序本身没有问题,因为以前都从未出现过此类问题,所以也是非常懵逼,在网上搜索了一圈,发现大部分回答都是让去修复win ...

  9. 在本计算机无法启动用友通,用友通服务无法启动,系统找不到的文件?

    摘要: 问题现象:用友通T3财务软件无法运行,启动用友通T3服务提示"Windows 无法启动 用友通 服务(位于本地计算机 上) 错误2: 系统找不到指定的文件",如下图所示:原 ...

  10. oracle 错误2 启动服务提示找不到指定文件_Weblogic中间件创建文件权限问题解决...

    感谢慧眼识珠的有缘人,在万千文章中点开这篇文章    随着现在自动化运维.开发运维.开发安全运维的兴起,还有各种公有云.私有云.混合云的风起云涌,街头巷尾大家都在谈论各种高大上的东西,基础的知识.问题 ...

最新文章

  1. 关于oracle spfile配置文件问题
  2. CSS a:hover伪类在IE6下的问题
  3. linux -- chcp
  4. Random类——获取随机数
  5. moldflow2018安装教程
  6. 为什么选择SpringBoot?
  7. MyBatis框架笔记02:接口方式使用MyBatis
  8. OAuth2.0_授权服务配置_三项内容_Spring Security OAuth2.0认证授权---springcloud工作笔记141
  9. 微软电脑适合什么人用_眼膜适合什么年龄段的人使用呢?什么年龄段的人用什么样的眼膜...
  10. 文件的I/O c++
  11. ubuntu ftp服务器_如何在Ubuntu上安装FTP服务器?
  12. Spring bean生命周期详解
  13. vue使用lodop打印控件实现浏览器兼容打印
  14. smali 添加资源
  15. 电脑垃圾太多?这几个清理电脑的软件来看看吗?
  16. 中文菜单的html编辑器,如何更改IE查看源代码菜单使用的HTML编辑器
  17. 生信工作流框架搭建 | 从零开始入门指南 - 00工作流之华山论剑
  18. 深度推荐模型 -NFM
  19. Unity中物体抛物线的实现
  20. linux getopt命令,Linux中getopt函数用法

热门文章

  1. kubernetes 学习记录-two
  2. Bulma和 Tailwind功能比较
  3. 企业招聘大数据人才 看重的是哪些方面?
  4. 三方协议、报到证(派遣证)、干部身份
  5. Linux yum源文件
  6. 坚果pro2刷回官方_坚果Pro2刷机教程刷TWRP面具详细步骤_软件开发_IT综合服务
  7. Android OpenGL ES 2.0(六)--- 纹理过滤
  8. 旅行商问题的离散布谷鸟搜索算法
  9. TTL和RS232之间的详细对比转
  10. [Unity算法]斜抛运动