VS2019编译的C++程序,在win10正常运行,在win7上Debug正常运行,Release运行报错0xC0000005,进不了main函数

目录

1.现象

2.原因分析


1.现象

在 Windows 10 下用 VS2019 编译的 C++ Release 版程序,在 Windows 7 上运行时触发 0xC0000005(访问违例)错误,且程序甚至无法进入 main 函数执行。这是典型的编译配置与 Win7 系统不兼容导致的启动阶段崩溃,而非代码逻辑问题。

2.原因分析

0xC0000005 且进不了 main 函数,说明程序在加载 / 初始化阶段就崩溃了,主要诱因有 3 个:

  • VS2019 默认工具集 / 目标系统版本是 Win10,未适配 Win7;
  • 动态链接的 VC++ 运行时库在 Win7 上缺失 / 版本不兼容;
  • 编译时启用了 Win7 老 CPU 不支持的高级指令集(如 AVX2)。

最后才找到问题的关键所在,有一个动态库,用于检测内存泄露的库,release版本在win7上不兼容的原因;这个问题困扰了两天多,一直没有找到根本原因,同时也是一个很大的坑;同时也在这里好好的记录下。

相关推荐
東隅已逝,桑榆非晚18 小时前
c++内存管理
c++·笔记
matlab代码18 小时前
基于matlab PCA人脸识别系统【源码63期】
开发语言·matlab
Terra.K18 小时前
后端开发阶段性总结
java·开发语言·后端
学逆向的18 小时前
PE——合并节
开发语言·网络安全·pe
是个西兰花18 小时前
C++11:线程库与线程安全问题
开发语言·c++
点心的游戏开发世界18 小时前
GDScript 入门笔记(十三):字符串操作
开发语言·笔记·游戏引擎·godot
少司府18 小时前
C++进阶:智能指针
开发语言·数据结构·c++·b树·算法·c·智能指针
matlab代码18 小时前
基于matlab的红绿灯图像检测识别系统【源码60期】
开发语言·matlab
博界IT精灵18 小时前
C语言中的数据类型及其转换
c语言·开发语言
软件黑马王子18 小时前
13.缓存池优化:对象上限配置
开发语言·前端框架·c#