一个调用摄像头的程序,如果把程序放到mainform,退出后再加载摄像头没有问题。
但是如果把摄像头程序作为一个子窗口FORM1,用this.close()关闭FORM1后再进入FORM1,
摄像头就加载不了了,this.Close()和aplication.exit()效果不一样?我使用的是codeproject里的catchitv例子,请高手指教
找到一个释放函数:但是怎么释放不了呀。
void CloseInterfaces()
{
int hr;
try 
{
              #if DEBUG
if( rotCookie != 0 )
DsROT.RemoveGraphFromRot( ref rotCookie );
              #endif if( mediaCtrl != null )
{
hr = mediaCtrl.Stop();
mediaCtrl = null;
} if( mediaEvt != null )
{
hr = mediaEvt.SetNotifyWindow( IntPtr.Zero, WM_GRAPHNOTIFY, IntPtr.Zero );
mediaEvt = null;
} if( videoWin != null )
{
hr = videoWin.put_Visible( DsHlp.OAFALSE );
hr = videoWin.put_Owner( IntPtr.Zero );
videoWin = null;
} baseGrabFlt = null;
if( sampGrabber != null )
Marshal.ReleaseComObject( sampGrabber ); sampGrabber = null; if( capGraph != null )
Marshal.ReleaseComObject( capGraph ); capGraph = null; if( graphBuilder != null )
Marshal.ReleaseComObject( graphBuilder ); graphBuilder = null; if( capFilter != null )
Marshal.ReleaseComObject( capFilter ); capFilter = null;

if( capDevices != null )
{
foreach( DsDevice d in capDevices )
d.Dispose();
capDevices = null;
}
}
catch
{}
}