문제

현재 응용 프로그램에서 제 3 자 구성 요소 (Devexpress) 문제를 조사하고 있습니다. 내 문제는 이것과 매우 유사합니다 Devexpress KB 기사. 동일한 스택 트레이스에서 동일한 예외를 얻습니다. 그래서 나는 .NET 리플렉터를 사용 하여이 시나리오에서 무효가 될 수있는 것을 알아 내고, null이 될만한 유일한 객체는 그래픽입니다. 이것은 Graphics.fromhwnd (intptr.zero)로 만들어집니다. GDI에 대한 광범위한 지식이 없기 때문에 누군가가 NULL을 반환 할 때 가능한 시나리오를 말할 수 있는지 알고 싶습니다 ...

Windows가 GDI 손잡이가없는 시나리오에서 재생산하려고했지만 "핸들이 아닌" - 적어도 한 번은 예외를 얻었습니다.

티아, 마틴

도움이 되었습니까?

해결책

내가 기억 한 바에 따르면, 0의 HWND (효과적으로 intptr.zero)는 현재 사용자 세션의 데스크탑에 대한 핸들입니다. 시스템의 다양한 메트릭을 측정하는 데 사용할 수 있으며 그래픽의 유효한 값이어야합니다.

그러나 GDI+는 버그로 가득 차 있으며 .NET 통합은 불안정하여 GDI+를 사용하는 것 외에 코드 나 DeVexpress에 아무런 문제가 없을 가능성이 매우 높습니다.

다른 팁

우선, 당신은 그것을 사용하고 있습니다 IntPtr 구조 및 0으로 초기화합니다. 그런 다음이 핸들을 그래픽 클래스로 전달합니다. 당신이 a가있는 창이 없다면 handle == 0, ㅏ null 가치는 정확히 내가 기대할 수있는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top