【问题标题】:Is there a reason why HRESULT should be assigned to a variable?是否有理由将 HRESULT 分配给变量?
【发布时间】:2018-09-17 17:04:08
【问题描述】:

我有一个关于 directshownet 示例中的一些演示代码的快速问题。 是否如下:

// Set the video to stream to pictureBox1
int hr;
hr = this.videoWindow.put_Owner(this.pictureBox1.Handle);
DsError.ThrowExceptionForHR(hr);

更喜欢:

// Set the video to stream to pictureBox1        
DsError.ThrowExceptionForHR(this.videoWindow.put_Owner(this.pictureBox1.Handle));

出于任何原因?如果是这样,为什么? 干杯

【问题讨论】:

    标签: hresult


    【解决方案1】:

    假设代码不正确并且方法失败并出现错误 HRESULT。您可能会在不久的将来调试此代码。在那种情况下,你更喜欢什么?必须调试到 ThrowExceptionForHR 以检查返回的 HRESULT,还是监视本地 hr?

    我知道我更喜欢哪个。

    假设 hr 有时只是一个错误代码。你更喜欢什么,在 ThrowExceptionForHR 中放置一个断点,或者在调用者上放置一个条件断点,仅当存储在 hr 中的值是错误代码时才中断?

    再次,我知道我更喜欢哪个。

    将您的代码设计为易于调试。以后你会感谢自己的。

    【讨论】:

    • 这是有道理的。我很少使用 IDE 的调试器,所以没有从这个角度考虑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多