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
一样,使用像我使用的数字是否正确。 最佳答案
0
或S_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/