Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IVMRWindowlessControl.RepainVideo试图除以零_C#_Directshow_Directshow.net - Fatal编程技术网

C# IVMRWindowlessControl.RepainVideo试图除以零

C# IVMRWindowlessControl.RepainVideo试图除以零,c#,directshow,directshow.net,C#,Directshow,Directshow.net,我用Directshow.NET开发了一个C#应用程序来显示相机预览。几乎在每个操作系统上都进展顺利,但在一些windows OS 10机器上(不是每个win OS 10,只是其中一些机器)由于异常试图除以零而导致预览失败。在hr=vmr9Control.repainvideo(hControl.Handle,gHDC)行内部绘制控件事件 我搜索了很多来找出这个异常的原因,即使我格式化了一台机器,但问题仍然存在。此外,根据观察,首次尝试预览时不会出现此异常,在显示预览和停止预览5-6次迭代后,会

我用Directshow.NET开发了一个C#应用程序来显示相机预览。几乎在每个操作系统上都进展顺利,但在一些windows OS 10机器上(不是每个win OS 10,只是其中一些机器)由于异常
试图除以零而导致预览失败。
hr=vmr9Control.repainvideo(hControl.Handle,gHDC)行内部
绘制
控件事件

我搜索了很多来找出这个异常的原因,即使我格式化了一台机器,但问题仍然存在。此外,根据观察,首次尝试预览时不会出现此异常,在显示预览和停止预览5-6次迭代后,会导致此异常

private void SetupGraph(DsDevice dev, Control hControl)
{
...
vmr9Control = (IVMRWindowlessControl)vmr9preview;
vmr9Control.SetVideoClippingWindow(hControl.Handle);
vmr9Control.SetAspectRatioMode(VMRAspectRatioMode.None);
hControl.Paint += new PaintEventHandler(hControl_Paint);
...
}

[System.Security.Permissions.SecurityPermission(
System.Security.Permissions.SecurityAction.LinkDemand, Flags =
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
void hControl_Paint(object sender, PaintEventArgs e)
{
    if (isPreviewstarted && vmr9Control != null)
    {
        int hr;
        IntPtr gHDC = e.Graphics.GetHdc();
        hr = vmr9Control.RepaintVideo(hControl.Handle, gHDC);
        DsError.ThrowExceptionForHR(hr);
        e.Graphics.ReleaseHdc(gHDC);
    }            
}

我建议您卸载重新安装图形卡驱动程序

步骤:卸载重新安装显示驱动程序

要从设备管理器中删除显示器驱动程序,请执行以下操作:

a。单击开始按钮打开设备管理器,或在搜索框中键入设备管理器

b。如果系统提示您输入管理员密码或确认,请键入密码或提供确认

c。查找显示适配器驱动程序,右键单击它并选择卸载

d重新启动计算机

e。重新启动时,Windows 10应自动重新安装驱动程序