release 模式 access violation debug 模式 出现 the value of esp。。。 在线等!

adwqx adwqx 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人写一个函数 需要遍历窗口找到控件句柄
于是使用了EnumChildWindows这个函数

具体如下:
定义了 两个全局变量 hmyprogram;haim;定义了一个全局函数 void myprogram();
然后全局函数中使用了EnumChildWindows这个函数

如下:

hwnd hmyprogram=null;
hmyprogram=myfun();由其他部分赋值给全局函数
void myprogram()
{
extern hmyprogram;
...............
if(haim==null) EnumChildWindows(hmyprogram,(WNDENUMPROC)Enum,0);
.....
....
......
}


回调函数
bool CALLBACK Enum(HWND hmyprogram)
{
........
if(是我的窗口) {haim=hmyprogram;return; }
return;

}



但是调试模式下 会出现 :The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
点击忽略后 程序可以继续执行

但是 发布模式下 直接出现 Unhandled Exception :0xc0000005 Access Violation 程序挂掉!




请问各位老大
小弟谢谢了
...全文

相关推荐

VC-Debug-Release]出错的问题解决办法

当调试VC 程序时,经常出现release 版本或者debug版本运行崩溃的问题,本文给出了一些解决方法……

StupidDoctor

ESP32 -O2崩溃根源与实战避坑指南

嵌入式开发中,C语言未定义行为(UB)是导致程序不稳定的核心隐患;编译器优化等级提升(如从-debug切至-O2)并不会引入新bug,而是暴露代码中长期被掩盖的内存生命周期错误、未初始化变量、跨核同步缺失等底层问题。尤其在ESP32平台,双核架构、DMA缓冲区Cache一致性、FreeRTOS任务栈限制等硬件特性会与-O2优化产生共振,放大未定义行为后果。掌握UBSan检测、栈审计、崩溃日志解析及-O2安全编码准则,是构建高可靠性固件的关键技术路径。

oldbalck

C++内存管理实战:栈与堆原理、Visual Studio调试与内存泄漏排查

内存管理是编程语言的核心基础,它决定了程序如何高效、安全地使用计算机内存资源。其原理主要围绕内存的分配与释放机制展开,栈内存采用后进先出的自动管理方式,而堆内存则提供灵活的手动控制。掌握栈与堆的差异对于编写高性能、稳定的程序具有重要技术价值,能有效避免内存泄漏、访问越界等常见问题。在实际应用场景中,无论是嵌入式系统、游戏开发还是高性能服务器,合理利用栈的快速自动分配和堆的动态大内存能力都是关键。本文聚焦于C++开发,通过Visual Studio的调试工具链,深入演示如何诊断栈溢出、堆内存泄漏等典型问题,并

weixin_33769125

VS2010如何发布winform程序,附带access数据库

VS2010如何发布winform程序,附带access数据库

zhouhaiyankwb

asp本地excel数据导入服务器access [release 1.0]

asp本地excel数据导入服务器access 纠正一个错误,过滤函数多写了""

萤火架构
评论 2
收藏 已收藏
分享
返回顶部
adwqx
VC/MFC 16,551 成员 421,605 内容