0
CWnd 클래스의 GetParent() 함수를 호출하려고합니다. 예외가 발생할 때마다. 작동중인 스레드에서 함수를 호출하고 있습니다.CWnd :: GetParent 예외가 발생합니다.
이것은 예외를 발생시키는 행입니다. CWnd * parent = this-> GetParent();
"GetParent() -> PostMessage (........);"시도했지만 여전히 예외가 throw됩니다.
이 방법은 CDialog에서 사용하고 있습니다.
CWnd 멤버 m_hWnd가 0x00000000 또는 0x00000001 인 경우가 있습니다. 다른 컴퓨터에서는이 예외가 발생하지 않습니다. 프로젝트 설정이나 코드에 문제가 있습니까?
후 관련 코드 (오류가있는 라인 주위 코드의 5-6 라인) – sashoalm
: 여기
는 VS 2010에서 구현 한 것입니다 CDialog에서 CWnd의 파생물 인 m_hWnd라는 멤버가 있어야합니다. 값이! = 0이면 디버거에 체크인하십시오. –"작동중인 스레드에서"라고 말합니다. 이것이 AfxBeginThread에 의해 시작된 스레드에서이 CWnd 클래스를 만들었다는 뜻입니까? 그렇다면 [다음 msdn.microsoft.com] (http://msdn.microsoft.com/en-us/library/b807sta6 (v) = vs.100) .aspx) InitInstance 함수를 재정의하려면? 이 작업은 다른 컴퓨터에서 작동하고 @neagoegab은 m_hWnd가 유효한 창이 아님을 지적하므로 CWnd를 만들고 초기화하기 전에 GetParent()가 호출되는 경쟁 조건을 처리 할 수 있습니다. –