1

为什么函数不允许使用 Try-Catch naked?还有其他选择吗?

Error 2 error C2490: 'try' not allowed in function with 'naked' attribute   
4

2 回答 2

4

不允许结构化异常处理和 C++ 异常处理构造,因为它们必须在堆栈帧中展开。

(请参阅与上述同一站点的此链接

于 2013-04-02T10:32:45.173 回答
2

在“naked”上使用异常处理不起作用的原因是它们的函数没有标准的序言和结语部分,这是“展开堆栈”所必需的,而“catch”则有。它在这里说(裸函数的限制)。

您将需要找到其他方法来实现您想要的 - 或者以某种方式包装您的裸函数以“让它们穿着”[穿着 = 与裸相反,不确定这是否是技术术语],或者不要使用 try-抓住。

于 2013-04-02T10:35:23.910 回答