首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导致试图除以零的IVMRWindowlessControl.RepaintVideo

导致试图除以零的IVMRWindowlessControl.RepaintVideo
EN

Stack Overflow用户
提问于 2017-04-25 04:38:46
回答 1查看 112关注 0票数 0

我已经开发了一个C#应用程序与Directshow.NET显示相机预览。几乎所有的操作系统都进行得很好,但是在一些windows OS 10机器上(不是每个windows OS 10,只是其中的一部分),预览都失败了,原因是hr = vmr9Control.RepaintVideo(hControl.Handle, gHDC);ControlPaint事件中出现了异常。

为了找出这一异常的原因,我找了很多,甚至我整理了一台机器,但问题仍然存在。此外,根据观察,此异常不会在预览的第一次尝试中出现,在显示预览和停止预览的5-6迭代之后将导致此异常。

代码语言:javascript
复制
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);
    }            
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-07 11:25:07

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

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

设备管理器中删除显示驱动程序

通过单击搜索框中的开始按钮或键入设备管理器来打开设备管理器

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

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

重启电脑.

在重新启动时,Windows 10应该自动重新安装驱动程序.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43601724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档