반응형
아래와 같은 방법은 되도록 사용하지 않는게 낫다.
Test프로젝트를 생성 할 경우를 예로 들겠다.
- 쓰레드가 아닐 경우
TestDlg* pTestDlg = (TestDlg*)AfxGetMainWnd();
- 쓰레드일 경우
TestDlg* pTestDlg = (TestDlg*)theApp.m_pMainWnd;
쓰레드에서 AfxGetMainWnd()를 호출하면 맴버변수들의 값이 NULL로 되어있다.
하지만 theApp.m_pMainWnd로 접근하면 맴버변수의 주소로 접근한다.
이 방법은 되도록 사용하지 않는게 낫다. 쓰레드 내에서 전역함수를 호출하거나 전역변수를
접근하면 문제가 발생 할 수도 있기 때문이다.
"되도록 파라미터로 넘겨서 사용하도록 한다"
반응형
'프로그래밍 > MFC' 카테고리의 다른 글
[MFC] Static Text Control (문자&배경색) (2) | 2011.01.04 |
---|---|
더블버퍼링, 트리플버퍼링 (CPaint, CDC 클래스) (2) | 2010.12.24 |
MFC 그림으로 버튼, 스크롤, 리스트 만들기 - 더블버퍼링 & UML 문서화 기법 (0) | 2010.11.26 |
쓰레드 (0) | 2010.10.27 |