原因:在同一个函数里还存在C++的异常处理。C++的异常处理不能与windows的结构化异常处理在同一个函数里。
解决方案:将要用windows结构化异常处理保护的代码单独放在一个函数里。
void Func1()
{
__try
{
Func2();
}
__finally
{
//do something
}
}
void Func2()
{
//do something
}
另:在使用windows的结构化异常处理时,__finally块与__except块不能同时出现在__try块后面,二者只能选其一,但可以嵌套使用。