我建立了一個自定義的DirectShow過濾器實現CSource如刪除DirectShow過濾器(析構函數不叫)
class Myfilter : public CSource
{
~MyFilter(){ delete everything;}
}
當我使用GraphStudio此過濾器,我可以正常刪除它,析構函數正確調用。
當我通過COM instaciation創建我的過濾器,我不能再刪除它與刪除
IBaseFilter *pFilter = NULL;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pFilter));
然後刪除pFilter不會調用析構函數。
我該如何爲我的過濾器調用我的自定義析構函數?
Samething with Release()而不是刪除 – Eric
然後你在別的地方有個bug。請發佈一個重現問題的最簡單的例子。 –
我仍然在某處引用了我的過濾器。大部分在GraphStudio未使用的圖形構建類中 – Eric