C++ 0xc0000417 错误

 程序中到处都用了SEH的try...catch,但总是会静静地退出,从外部的进程查询它的退出码,结果是0xc0000417,上网一查,未知软件错误。

它是谁来抛出的异常?windows,C++库,用户代码?

我真没有抛出这样的异常,windows自己抛出的异常就应该不叫未知软件错误了,估计是C++框架抛出的。

那么怎么找呢?我直接到VS的安装目录去找0xc0000417,结果在ntstatus.h找到定义:

//
// MessageId: STATUS_INVALID_CRUNTIME_PARAMETER
//
// MessageText:
//
// An invalid parameter was passed to a C runtime function.
//
#define STATUS_INVALID_CRUNTIME_PARAMETER ((NTSTATUS)0xC0000417L)

 

原来是非法句柄错误,但我又没有用_set_invalid_parameter_handler设置处理回调函数。

这样C++框架发现了这一情况,就调用了_invoke_watson函数,它把UnhandledExceptionFilter重设

(导致程序一开始设置的UnhandledExceptionFilter不可用),然后调用默认的UnhandledExceptionFilter之后,

就TerminateProcess结束进程,这就是为什么程序总是静静地退出了。

引用\[1\]:异常代码0xc0000409通常是由堆栈溢出引起的。在您的情况下,您发现程序运行一段时间后占用的内存不断增加,最终导致程序崩溃。经过调查,您发现问题是因为调用了系统的一个接口,在使用完接口中的buffer后没有正确释放内存,导致内存泄漏。解决这个问题的方法是确保正确地分配和释放内存,特别是在使用系统接口时要注意释放内存。\[1\] 引用\[3\]:关于C++的异常代码0xc0000409,它通常表示堆栈溢出。堆栈溢出是指当程序使用的堆栈空间超过其分配的大小时发生的错误。这可能是由于递归调用或大量局部变量导致的。要解决这个问题,您可以检查代码中是否存在递归调用,并确保正确管理局部变量的生命周期,以避免堆栈溢出错误的发生。\[1\] 综上所述,C++异常代码0xc0000409通常表示堆栈溢出错误。要解决这个问题,您可以检查代码中是否存在递归调用,并确保正确管理局部变量的生命周期,以避免堆栈溢出错误的发生。此外,还要注意在使用系统接口时正确释放内存,以避免内存泄漏的问题。\[1\]\[3\] #### 引用[.reference_title] - *1* [Qt creator开发的C++应用程序运行崩溃,异常代码0xc0000409,错误偏移量0x0009efbb解决。](https://blog.csdn.net/asla_1/article/details/112615929)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Process finished with exit code -1073740791 (0xC0000409)报错解决方案](https://blog.csdn.net/wjinjie/article/details/124024926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Bug解决】 -1073740791 (0xC0000409)](https://blog.csdn.net/qq1198768105/article/details/123381388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值