정적, 동적 다이얼로그 객체의 생성과 해제[초간단]
mfc & winAPI
2012. 3. 7. 13:16
다이얼로그를 생성할때는 정적생성과 동적생성이 있다.
정적 생성할때는
CMyDialog dlg;
동적 생성할때는
CMyDialog *m_Dialog; //포인터변수 선언(헤더에 선언)
m_Dialog = new *CMyDialog; //다이얼로그 동적생성
경험상, 정적 생성할때는 따로 해제를 해주지 않아도 자동 해제된다.
그러나, 동적할당 할때에는 꼭 반드시 해제를 해주어야 한다.
그러지 않으면 메모리 누수현상이 일어나서, 릴리즈로 동작시 크게 이상은 없으나
해당 다이얼로그를 수십회 열게되면 해제하지않은 다이얼로그들이 남아있어 결국 언젠가 오동작을 일으킬 수 있다.
동적 생성한 다이얼로그를 해제할때는
delete를 이용한다.
m_Dialog->DestroyWindow();
delete m_Dialog;
이게 정석이나
delete m_Dialog; 만 해주어도 크게 문제는 없었다.
작업후에 디버그 모드에서 돌린후, 메모리 누수가 없는지 확인 해보길...
'mfc & winAPI' 카테고리의 다른 글
LPSTR LPCTSTR 위험 CString -> char 으로 변환 (0) | 2013.02.13 |
---|---|
CString과 char*간의 변환 (0) | 2012.12.07 |
MFC 에서 strcat 함수 말고 StringCchCopy 함수를 사용하자. (0) | 2012.12.07 |
MFC HotKey 등록 (0) | 2012.11.05 |
중복실행 방지코드 (0) | 2012.03.07 |