gpt4 book ai didi

c++ - 如何在 C++ 中使用 HRESULT 条件检查

转载 作者:行者123 更新时间:2023-12-02 10:06:21 26 4
gpt4 key购买 nike

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";

因为我总是听到 HRESULTE_TIMEOUT 等字符串输出,是否像我使用的那样使用数字是正确的。

最佳答案

这里的主要问题是您将 HRESULT 用于什么目的?

您显然可以为 HRESULT 分配任何值,但为什么不直接使用 int 呢?

HRESULT 用作传达函数调用成功或失败的方式。通常 HRESULTS_OK (0) 或错误(负数)。 S_FALSE(1,不是失败也不是成功)很少使用。

当与 COM 或 .NET 一起使用时,调用者通常只检查函数是成功还是失败。默认情况下,当编码(marshal)返回 HRESULT 的函数时,.NET 的编码(marshal)处理程序会将函数转换为 void 函数,如果结果为负则抛出异常,如果为负则丢弃结果非负。

如果您的代码属于这种情况,则没有必要给出特定的正值。如果您不使用它来实现互操作性,您可能根本不应该使用 HRESULT

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com