본문 바로가기
프로그래밍/MFC

쓰레드에서 Main핸들 얻기

by 호군 2010. 10. 27.
반응형

아래와 같은 방법은 되도록 사용하지 않는게 낫다.
Test프로젝트를 생성 할 경우를 예로 들겠다.

- 쓰레드가 아닐 경우
  TestDlg* pTestDlg = (TestDlg*)AfxGetMainWnd();

- 쓰레드일 경우
  TestDlg* pTestDlg = (TestDlg*)theApp.m_pMainWnd;

쓰레드에서 AfxGetMainWnd()를 호출하면 맴버변수들의 값이 NULL로 되어있다.
하지만 theApp.m_pMainWnd로 접근하면 맴버변수의 주소로 접근한다.

이 방법은 되도록 사용하지 않는게 낫다. 쓰레드 내에서 전역함수를 호출하거나 전역변수를
접근하면 문제가 발생 할 수도 있기 때문이다. 

"되도록 파라미터로 넘겨서 사용하도록 한다"


반응형