0
這可能是基本的,但它是一個漫長的一段時間,因爲我用這個。我所看到的每一樣的例子如下:哪家的IErrorInfo妥善處理釋放
IErrorInfo *pError;
HRESULT hrError = ::GetErrorInfo(NULL, &pError);
//more code here
if (SUCCEEDED(hrError) && pError) {
//more code here
pError->Release();
}
,然後在其他地方
IErrorInfo *pError;
HRESULT hrError = ::GetErrorInfo(NULL, &pError);
//more code here
if (SUCCEEDED(hrError) && pError) {
//more code here
}
pError->Release();
哪一個是在這裏使用Release()
的正確方法?有關係嗎;如果是的話,爲什麼?
他們都錯了。這種「不告訴我我有空指針錯誤」的編碼風格是普遍存在的,除了創建「它不工作」的錯誤報告之外,什麼都不做。你無法避免在第二段中找到錯誤。 –
@HansPassant也許這是我對第一個例子感到困擾的未說明的部分,現在有什麼更好的方法來做到這一點? –
只要刪除'&& pError' –