没有除法的System.DivideByZeroException

时间:2015-04-01 15:19:45

标签: c# c++ video aforge

我正在使用此代码从连接的相机捕捉短时间的视频:

private void Show() {
    if (videoDevice != null) {
        videoDevice.VideoResolution = capabilities[comboBox1.SelectedIndex];
        size = ((Size) comboBox1.SelectedItem);
        videoDevice.NewFrame += new AForge.Video.NewFrameEventHandler(Frame);
        videoDevice.Start();
    }
}
private void Frame(object sender, NewFrameEventArgs e) {
    if (count > 7 && !motion) {
        urame = 0;
        b = ((Bitmap) e.Frame.Clone());
        if (detector.ProcessFrame(b) > 0.02) {
            motion = true;
            writer.Open(@"C:\Users\Home\Documents\Visual Studio 2013\Projects\CCTV\CCTV\bin\wesdgzufjw3.mp4", size.Width, size.Height, 30, VideoCodec.MSMPEG4v3);
        }
    } 
    else if (motion) {
        b = ((Bitmap) e.Frame.Clone());
        writer.WriteVideoFrame(b);
        if (detector.ProcessFrame(b) < 0.02) {
            motion = false;
            writer.Close();
        }
    }
    count++;
}

但出于某种原因,当检测到动作时,visual studio会抛出一个错误说:

  

&#34;类型&#39; System.DivideByZeroException&#39;发生在AForge.Video.FFMPEG.dll但未在用户代码&#34;

中处理

我检查了我的代码&#34;坏分区&#34;出于绝望,我已从我的代码中删除了所有算术。我的一个朋友在几个星期前的一个项目中使用了完全相同的lib - AForge.Video.FFMPEG - 并没有遇到任何这样的错误。

问题在于错误并没有说明可能出错的地方..除法可能在lib中,在我使用的方法中,heck,甚至ToString()都必须使用某种划分..

注意:我已经为c ++添加了一个标签,因为1)Aforge主要是用c ++写的,2)在这个错误发生前几分钟我得到一个错误,说VS2013 C#调试器无法调试C ++,并且在C ++中发生了错误

0 个答案:

没有答案