首页
社区
课程
招聘
关于VEH的疑问
发表于: 2014-11-21 10:18 3179

关于VEH的疑问

2014-11-21 10:18
3179
在一个在静态库中使用MFC的DLL中 启用C++异常选择:是,但有SEH异常(/EHa)

然后使用VEH添加一个异常处理函数 对自己处理的特定异常返回

EXCEPTION_CONTINUE_EXECUTION 对其它的异常返回EXCEPTION_CONTINUE_SEARCH

发现原来的异常处理好像被破坏了 不能调用会生产异常的API比如IsBadReadPtr

没有添加VEH的时候 IsBadReadPtr如果传入NULL 会有异常产生但是会调用异常处理程序正常运行

添加VEH以后 产生的异常无法处理直接崩溃 给我的感觉就是产生的异常传递到VEH这里就中断

了 没有继续传递下去 按我的理解返回EXCEPTION_CONTINUE_SEARCH 应该

是把异常继续传递给下一个处理器 换成EXCEPTION_EXECUTE_HANDLER也不行

添加VEH导致程序中的try catch也不执行 现在不知道怎么处理了

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
2
VEH回调函数只有2个可用值:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681419(v=vs.85).aspx
EXCEPTION_CONTINUE_EXECUTION 和 EXCEPTION_CONTINUE_SEARCH.

应该是你程序的问题,试试在回调函数里直接return EXCEPTION_CONTINUE_SEARCH;
看看怎么样.
2014-11-21 10:45
0
游客
登录 | 注册 方可回帖
返回
//