HRESULT hr = S_OK; //initialization`
if (int i == 5)
{
    hr = 1; //Is it correct usage?
}
if (hr == 1)
    cout<<"The value of i is 5";

正如我一直听到的HRESULT等字符串输出E_TIMEOUT一样,使用像我使用的数字是否正确。

最佳答案

0S_OK的HRESULT是标准的“成功”代码。 1是S_FALSE,意思是“成功,但是我没有完全按照您的要求执行您的操作,因为它可能已经完成了”。

标准模式更接近于此:

HRESULT hr = S_OK //initialization


if (int i == 5)
{
    hr = S_OK;
}
else
{
    hr = E_INVALIDARG;  // Or any E_ error code
}

if (SUCCEEDED(hr))
{
    cout<<"The value of i is 5";
}
else if (hr == E_INVALIDARG)
{
    // handle specific error
}
else
{
   // handle all other errors generically
}

关于c++ - 如何在C++中使用HRESULT条件检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60023646/

10-12 19:41