2017-04-25 4 views
0

私はカメラのプレビューを表示するためにDirectShow.NETでC#アプリケーションを開発しました。すべてのOSはほぼすべてのOSでうまくいっていますが、一部のWindows OS 10マシン(すべてのOS 10を勝ち抜いているわけではありません)では、Attempted to divide by zero.hr = vmr9Control.RepaintVideo(hControl.Handle, gHDC);PaintイベントがControlにあります。IVMRWindowlessControl.RepaintVideoが0で除算しようとしました

私はマシンの1つをフォーマットしても、この例外の原因を見つけるために多くを探しましたが、問題はまだあります。また、観察ごとに、この例外はプレビューの最初の試行では来ない、プレビューの表示を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); 
    }    
} 

答えて

1

私はあなたがとは、グラフィックカードドライバを再インストールアンインストール示唆しています。

手順:アンインストールおよびディスプレイドライバを再インストールします。

デバイスマネージャからディスプレイドライバを削除するには

を開きます。の開始ボタンをクリックするか、またはのデバイスマネージャを検索ボックスに入力します。

b。 管理者パスワードまたは確認を求めるメッセージが表示された場合は、パスワードを入力するか、確認を提供してください。

c。 ディスプレイアダプタドライバを探して右クリックし、アンインストールを選択します。

d。 コンピュータを再起動を再起動します。

e。再起動時に、Windows 10はドライバを自動的に再インストールする必要があります。

関連する問題