如下代码块的解决办法:
__try{
...;/*一系列操作*/
}
__finally{
...;/*进行释放的相关操作*/
}
不用说,这种结构是用来解决异常的很好方案,很好的便于我们释放一些内存。例如,在函数结束的时候关闭句柄等。
但是也有特殊情况,如果其中添加了类对象的使用,将会报如题的错误”无法在要求对象展开的函数中使用 __try”。
网上的解决方法:
大部分都是关于对C++的SEH异常处理进行关闭,但是后来发现并不能解决问题,作者尝试对异常处理关闭后,随之而来的是在其他地方报连带错误。
毕竟SEH是Windows的结构化异常,它是为了强有力的维护代码的健壮。存在即真理!
尝试了一种比较好的替代方法,适用于更好的释放内存:
do{
if(...)
{
...
break;
}
if(...)
{
...
break;
}
...
}while(false);
...;/*进行释放的相关操作*/
return;
如果有更好的处理方法望告知。