2017-04-25 16 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으로 나누려고 시도 함

나는이 예외의 원인을 찾기 위해 많은 조사를했는데 심지어 기계 중 하나를 포맷했지만 문제는 여전히 존재합니다. 또한 관찰 당이 예외는 미리보기의 첫 번째 시도에서 오지 않습니다. 미리보기의미리보기를 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은 드라이버를 자동으로 다시 설치해야합니다.