1

我有一个关于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));

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

4

1 回答 1

8

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

我知道我更喜欢哪个。

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

同样,我知道我更喜欢哪个。

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

于 2013-12-13T01:03:45.317 回答