【发布时间】:2012-03-20 18:28:49
【问题描述】:
我使用 DirectShowNet,当我的 Graph 停止时,我会释放 com 对象。
问题是,当我尝试释放 COM 对象 [过滤器,接口] 时,有时这种清理会导致 directshow graph not STOPPED.It “suspend”。
如果我不整理 [释放 com 对象] 一切都可以 [除了我有内存泄漏] ...
以下是我的清理方法:
if (videoWindow != nullptr)
{
Marshal::ReleaseComObject(videoWindow);
videoWindow = nullptr;
}
if (mediaControl != nullptr)
{
Marshal::ReleaseComObject(mediaControl);
mediaControl = nullptr;
}
if (graphBuilder != nullptr)
{
Marshal::ReleaseComObject(graphBuilder);
graphBuilder = nullptr;
}
....
可能有什么问题?我是否以错误的方式释放过滤器?什么可能导致这个“不可阻挡的图表”?
【问题讨论】: