Windows 8开始支持了fastfail,于此同时微软CRT原版大量的异常处理(比如说_invalid_parameter)默认情况也将直接调用fastfail退出程序,这使得捕获某些异常状态的dmp变得更加困难。 因为SetUnhandledExceptionFilter没有机会处理这些信息。
[ YY交流群 633710173 ]
通过链接时Hook,代替微软CRT中的_invalid_parameter、_purecall等函数。仅针对模块自身有效,不会产生污染。
使用本库后 _set_invalid_parameter_handler、_set_purecall_handler 之类的操作会直接无效!
- _invalid_parameter
- _purecall
- 项目右键 - 管理 NuGet 程序包。
- 在搜索框中输入YY.CRT.Handler.Thunks,然后点击安装。
- 重新编译代码。
- 下载YY.CRT.Handler.Thunks-Binary,然后解压到你的工程目录。
- 【链接器】-【输入】-【附加依赖项】,添加
objs\$(PlatformShortName)\YY.CRT.Handler.Thunks.obj
。 - 重新编译代码。
全平台ABI兼容。
- 支持的平台工具集:Visual Studio 2012、Visual Studio 2013、Visual Studio 2015、Visual Studio 2017以及Visual Studio 2019。
- 所有运行库模式均支持(比如:
/MD
、/MT
、/MDd
、/MTd
)。
Visual Studio 2012之前的工具集由于不会使用fastfail,因此用了本库那也是白用。