在Windows C库中使用__try / __ finally扩展是否有任何不利之处?

问题描述

我正在用C编写Windows特定的库,并且正在考虑使用try-finally statements(Microsoft对C语言的扩展)来简化我的代码,即使在意外失败的情况下也可以清理资源。 Cleaning up resources中给出了一个示例。

我也不关心操作系统的可移植性,也不关心编译器的可移植性,the current version of Clang appears to support it on Windows

到目前为止,我确定的唯一负面后果是对标准C ++异常处理的潜在干扰。有关详细说明,请参见文档页面Handle structured exceptions in C++/EH (Exception handling model)。对于.NET语言来说,这种情况似乎是安全的,但是我担心C ++用户可能没有设置正确的编译器选项,并且可能会遇到诸如this SO answer中所述的不便之处。

这是一个有效的问题吗?重新考虑使用try-finally语句是否还有其他缺点或原因?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)