应用程序无法正常启动0xc000007b win7

1. 一开始报错

在这里插入图片描述
下载dll放到同级目录后报下一个错误。
(这里注意:搜索的时候就发现大多数dll都是 vc_runtime 140 没有d,d表示debug。同事指点:使用vscode生成解决方案时要用release模式,不是debug模式,这也是导致我解决方式1和2失败的原因。)
在这里插入图片描述
下载dll放到同级目录后报错应用程序无法正常启动0xc000007b
在这里插入图片描述

2.应用程序无法正常启动0xc000007b

·
之前自己用vs2019写的一个单纯的控制台程序(调用使用了MFC的dll程序),在安装了vs2019的win7上可以运行,但是在没有安装vs2019的电脑上就不能运行,提示了标题错误。

搜索过一些常规解决方案,例如:

2.1 无效:解决1

这个问题,根据 应用程序无法正常启动0xc000007b怎么解决。主要是由于DirectX 9.0被损坏,需要下载软件运行一下(主要还是win7系统缺失了很多dll文件造成的)

打开DirectX修复工具,

  1. 检测并修复
  2. 工具->选项->扩展->开始扩展(联网状态下完成)
  3. 重启

依然报错。

2.2 无效:解决2

第二种解决方案,根据教您解决应用程序无法正常启动(0xc000007b)
管理员身份打开cmd,输入

sfc /scannow
# 显示
开始系统扫描。此过程需要一些时间开始系统扫描的验证阶段。
验证XX%已完成。  # 等上述进度变成100%

可以在路径查看修复情况,最后显示如下:(也需要重启)
在这里插入图片描述

2.3 无效:解决3 找对应的分发包

参考 正确解决:坑爹的0xc000007b——应用程序无法正常启动可知:
肯定是缺乏了一些什么包,但是这个人的说法太含糊了

请教公司一个c++开发的前辈,经过高人指点,下载分发包,软件环境,就需要Microsoft VC++ Redistributable 2015这个可再分发包即可(我的可以运行的电脑是win7 vs2019)
在这里插入图片描述
下载 Visual C++ Redistributable for Visual Studio 2015:报错按不上,显示样本机(测试机)有一个更新的版本的时候就不能安装这个。

测试机版本:
在这里插入图片描述

所以找找更新的版本,下载Visual Studio 2015、2017 和 2019。
这个版本号是 14.27.29112(x86和x64都是这个版本号)
在这里插入图片描述

在这里插入图片描述
试了之后还是没用

比我本机用的要新了很多啊。。。找到本机用的吧。
在本机目录,vs2019的安装目录下,
D:\visual studio2019\VC\Redist\MSVC\14.27.29016 就可以找到和自己电脑安装的分发版本一致的这个exe包
在这里插入图片描述
依然没用,哈哈哈

2.4 使用工具查看缺乏/冲突dll文件

参考:应用程序无法正常启动0xc000007b解决方法

根据Dependency Walker使用说明,去这个网站下载这个软件:dependencywalker
在这里插入图片描述
File->Open打开要查看dll依赖关系的exe文件,然后就会出现结果。
在这里插入图片描述

2.5 OK 解决4:vs studio使用release生成解决方案

又忘了visual studio这个软件的一些使用方式,不常用就是难受。

我的解决方案下有两个项目,

  1. 控制台应用 类型 (这个用来调用dll)
  2. 动态链接库(DLL)类型 用来完成功能

使用的时候,将调用dll的那个项目设置为设为启动项目,

  1. 先 DLL的那个项目直接在 解决方案资源管理器里右击项目名称 重新生成即可。
  2. 然后直接菜单栏上生成->生成解决方案

在将配置管理器部分的Debug模式变成Release模式之后,报了新的错误。(Debug模式下不报错,换成release模式就报错,也是奇怪。。。)

继续解决这个项目的错误

2.5.1 MFC dll共享设置错误

在这里插入图片描述
E0035 #error 指令: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] produce_dll C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\atlmfc\include\afx.h 24

C1189 #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] produce_dll C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\atlmfc\include\afx.h 24

看起来是一个错。
根据error Please #define _AFXDLL or do not use /MD[d] occurs even after making changes in Project Properties

在这里插入图片描述
想起来以前debug模式下调试的时候也遇到过这个错误,没想到换个release模式还要从重新设置。

vs2019的设置位置是:解决方案资源管理器->右击项目名称->属性->高级->MFC的使用->选择在共享DLL中使用MFC
此外,注意 项目属性页(下图)中的配置和平台与运行界面的 并不总是一致,
所以可以直接把平台写成所有
(Debug中不设置可以运行,但是release不这样就不行??)
在这里插入图片描述

2.5.2 error LNK2005: _DllMain@12 already defined in XXX.lib

在这里插入图片描述
在这里插入图片描述

错误 LNK2005 _DllMain@12 已经在 mfcs140u.lib(dllmodul.obj) 中定义
produce_dll E:\2.电动工具所\experiment02_C++\produce_dll\dllmain.obj 1

大部分中文博客都知道原因是什么:
dll文件的cpp文件中默认就有dllmain这个函数,当添加MFC库时,在其中已经定义了DLLMAIN这个方法

解决方案基本都是参考:
基于MFC的dll中添加DllMain函数,编译时产生_DllMain@12 已经在 XXX.obj 中定义的解决方法
在这里插入图片描述
看到咧,vs2019的在这里(平台要选个特定的,不能选所有。。。)
在这里插入图片描述
但是我不太喜欢这种解决方式,调配置,太马后炮了

还有一些是去掉dll的cpp文件中的dllmain函数。。。。更不靠谱,例如由于引用MFC库导致DllMain重复定义问题解决 error LNK2005

解决方式2 推荐
根据error LNK2005: _DllMain@12 already defined in MSVCRT.lib

在这里插入图片描述
简单来说:就是在你编写dll的cpp文件最后加上一句代码

extern "C" { int _afxForceUSRDLL; } 

英语的大意是:
当我们使用MFC的时候,会直接/间接的include文件afx.h,然后MFC(afx.h)告诉链接器去寻找 _afxForceUSRDLL这个符号,然后把包含 _afxForceUSRDLL这个符号的对象放到程序中去,这样链接器就找到并把 dllmodule.obj放到程序中了,因为_afxForceUSRDLL是在dllmodule.cpp文件中定义的。

这是最常见的场景,当我们想在 共享DLL中使用MFC时,链接器编译时发现有两个DllMain函数,一个在我们自己编写dll的cpp文件中,另一个在Dllmodule.obj中。

所以我们需要告诉链接器把 _afxForceUSRDLL这个符号加到我们的dllmodule.obj中,为此我们要在自己写的DllMain函数定义的cpp文件里定义 _afxForceUSRDLL。这样链接器就会忽略mfc模块中的dllmodule.obj,只看到我们自己定义的那个DllMain。就好了

2.5.3 其他知识

debug模式下生成的dll文件有180KB,exe文件有39KB
但是release模式下生成的dll文件只有28KB,exe文件有10KB。
原来这个东西还是不太一样哦,哈哈。还是release模式好,么么哒(*  ̄3)(ε ̄ *)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351756.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

蓝屏stop:0x000000007B (oxf78aa524,Oxcooooo34

神舟飞天超级本安装键盘后提示错误,开机后,反复按f2,进入bios,高级SATA选项,发现我的默认是AHCI的模式我设置为IDE,按f4保存退出后正常了.

电脑运行应用程序出现0xc000007b的解决方法

在我们使用Windows操作系统的计算机时,双击运行程序,它无法运行而且还会出现一个这样的对话框(如下图),总之程序就是运行不了,让人很头疼,这次教大家如何解决这个问题。 出现这样的问题,是电脑里面的几个文…

无法正常启动0xc000007b的解决方法

最近在我的电脑上用VS10-x64 release编译好了一个软件,用了VC,openCV以及其他的库,在我们已经装了VS10的电脑上运行都没有问题,但是在一台全新的电脑上安装上我发布的软件就出问题了。客户要求我们不能装VS10软件,于是我们装了VC1…

Spring-data-jpa最全的查询语法总结,直入超神

🤵‍♂️ 个人主页:香菜的个人主页 ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步&#xff…

0x0000007b电脑蓝屏的解决方法

AHCI是高级主机控制接口,可以发挥SATA硬盘潜在的加速功能,尤其是固态硬盘,更加需要使用AHCI硬盘模式,开启ahci一般在安装系统之前进入BIOS进行设置,但是不同主板BIOS设置界面不尽相同,很多人都不懂bios怎么…

蓝屏0x0000007b要怎么办?有什么简单的处理方法?

遇到蓝屏0x0000007b要怎么办?相信很多人都遇到过吧?这种蓝屏其实是很让人烦恼的,会导致系统直接无法使用,今天小编就来给大家详细的说说。 一.电脑蓝屏0x0000007b怎么办 1.首先点击开机键将电脑关闭,然后重启电脑开机按下F10进入bios。 2.选…

出现蓝屏代码0x0000007b的原因及解决办法

出现蓝屏代码0x0000007b的原因通常是硬盘的存储控制器驱动加载错误,我们可以通过对BIOS界面进行修复来解决这个问题。下面小编将详细介绍解决蓝屏代码0x0000007b的方法,一起来看看吧 导致驱动加载错误的情况有以下三种: 一、无法自动识别硬盘…

有效解决应用程序无法正常启动(0xc000007b)的错误

尝试了各种办法,最后就这个方法非常实用!一下子就解决了问题!大家快来用! 博主遇到的问题是SPSS、Origin和某些绘图软件集体失灵,都显示无法正常启动应用程序 知道肯定是缺少了一些东西,于是开始自己手动…

0xc000007b应用程序无法正常启动解决方案(亲测有效)

这种问题的出现,大多数都是不小心删掉了c的静态库的东西,解决方案有很多,但是都有点复杂,我这里提供两种方法,可以解决大部分用户的难题。 在这里奉劝小伙伴们一句,不要手欠去动系统软件哈,就是…

软件提示无法正常启动0xc000007b的解决方法

#软件提示无法正常启动0xc000007b的解决方法 0xc000007b问题是由于我们缺少电脑.dll运行库问题所导致的,所以可以 下载DirectX修复工具进行修复: 可修复DirectX运行库VC个版本运行库msvcp.dll等各类dll缺失问题 当初博主遇到这个问题的时候&#xff…

应用程序无法正常启动(0xc000007b)解决

注:本文对0xc000007b的问题本质进行了说明,可以说对网上杂七杂八的声音做了一个统一。 问题情景: vs2013 写的一个64位的exe程序,release后带着来自系统目录C:\Windows\SysWOW64\msvcr120.dll 到一个没有runtime的win7环境去运行&…

应用程序无法正常启动0xc00007b的解决(二)

【背景】 基于Visual Studio环境开发的程序换一个运行环境时常常出现这样的情况:先提示“无法启动此程序,因为计算机丢失**.dll。尝试重新安装该程序以解决此问题”,很容易想到的办法就是从原来的环境中搜索相应的**.dll,然后放到…

应用程序无法正常启动,提示错误代码0xc000007b怎么办?

许多用户在访问《FIFA》、《孤岛惊魂》、《使命召唤》等游戏或其他应用程序时,收到了0xc000007b错误,提示“应用程序无法正常启动(0xc000007b)”。 导致错误代码0xc000007b的原因有很多,小编列出的是相对常见的原因: 1、当你尝试启…

0xc000007b的解决办法(续)

最后更新:2021-3-1 请大家首先确定已经按照原文的方法及步骤尝试过,但是还是没有解决问题再来看这篇文章。如果你还没有看过原文,请先看原文: http://blog.csdn.net/VBcom/article/details/6070705 看到这里的朋…

零基础如何入门网络安全(黑客)

给大家一个忠告,如果你完全没有基础的话,前期最好不要盲目去找资料学习,因为大部分人把资料收集好之后,基本上都是放在收藏夹吃灰,同时资料收集的多了,学起来就会迷茫,也会让自己很有压力。 第…

Nginx之location与rewrite

Nginx之location与rewrite 一.location location 对访问的路径做访问控制或者代理转发1.匹配分类 精准匹配: location / {...} 前缀匹配: location ^~ / {...} 正则匹配: location ~ / {...} location ~* / {...} 部分…

gismo-3维IGA

文章目录 前言一、简单示例二、gismo-3维IGA3维程序中的几何模型 三、xml文件的理解1、xml文件示例2、gismo中二维示例文件-一个曲面(简单) 四、三维程序中xml文件的理解三维几何模型边界信息 五、三维程序运行细化四次细化5次 总结 #pic_center 前言 只…

30天从入门到精通TensorFlow1.x 第四天,TensorFlow中的计算图或数据流图

文章目录 一、接前一天二、计算图或数据流图1. 什么是计算图或者数据流图2. 为什么需要计算图或者数据流图3. 执行顺序和延迟加载在tf中的使用 一、接前一天 这几天主要学习了张量的创建方法,以及变量,变量命名域共享变量等概念。今天主要熟悉 数据流图…

通达信l1l2行情接口-十档行情有哪些优势?

据提供系统或用户编制的条件选股公式进行选股选定一个条件选股公式或多个组合条件后,计算机自动帮您选出当时或历史上某一段时间内满足条件的所有股票十档行情 英文,列在行情下载显示窗口,同时可保留成板块。 那通达信l1l2行情接口-十档行情…

ciscn 2023 初赛 pwn shell we go

ciscn 2023 初赛 pwn shell we go 这题go pwn,符号恢复就恢复很长时间了,网上的插件好多都没用 根着流程,可以看到这里有一个验证,以空格来分割,第一个参数会验证是否为nAcDsMicN 如果第一个参数验证通过&#xff0c…