Borland C++ Builder提供了OleCheck(HRESULT Result);函数。其在文档中的描述是这样的:



如果函数返回失败的状态值,建议与Microsoft ATL一起使用以引发异常的推荐函数或惯用法是什么?我想避免在这样的代码中混合使用Borland和Microsoft库:

CComPtr<Outlook::Explorers> spExplorers;
OleCheck(m_spApp->get_Explorers(&spExplorers));

最佳答案

ATL中没有这样的现成的东西。最接近的是 AtlThrow() (它无条件地)引发异常,但是检查仍由您自己决定-您可以研究ATL本身如何使用AtlThrow()

因此,IMO最好的选择是制作自己的函数-它将接受HRESULT并调用AtlThrow()HRESULT的其他异常引发构造,这些构造可通过false宏逃到FAILED

10-01 17:28