因为microsoft的新增了一些异常机制,导致有出错不反馈直接崩溃的情况出现,所以采用以下措施来防止:
_set_invalid_parameter_handler异常处理函数
原型:
_ACRTIMP _invalid_parameter_handler __cdecl _set_invalid_parameter_handler(
In_opt _invalid_parameter_handler _Handler
);
不要浪费时间在无关的部分,只看参数_invalid_parameter_handler
继续挖:
typedef void (__cdecl* _invalid_parameter_handler)(
wchar_t const*,
wchar_t const*,
wchar_t const*,
unsigned int,
uintptr_t
);
因此想调用这个异常处理函数就应该如下所述:
_set_invalid_parameter_handler(InvalidParamterHandler)
void InvalidParamterHandler(
wchar_t const* Exception,
wchar_t const* Function,
wchar_t const* File,
unsigned int Line,//错误行数
uintptr_t Reserved//不执行异常
);