728x90
CImage를 이용하여 많은 이미지를 사용하고 있었는데, 이미지를 변경할 때마다 Memory Leak이 발생하는 현상을 발견하고,
구글링을 해도 딱히 방법이 나오지 않아서 직접 테스트하다가 해결하였다.
기존 코드
위의 경우 분명 DeleteObject() 를 이용해서 hOldBmp 를 지우기 때문에 메모리 릭이 없을 거라 판단을 하고 작업을 진행하고 있었다.
하지만 여러가지 테스트 결과 DeleteObject() 한번 더 해줘야 하는 것 같다.
수정한 코드
우선 img를 static으로 선언하여 계속 가지고 있으면서 이미지를 변경할 때마다 img를 Destroy()하고 또 한번 DeleteObject()를 해야만 Memory Leak이 발생하지 않았다.
MFC를 이용해서 UI 작업 하는 게 생각만큼 쉽지는 않나보다... ㅎㅎ
728x90
'GUI Toolkit > MFC' 카테고리의 다른 글
MFC - MDI 생성시 FileNew를 하지 않는 방법 (0) | 2018.01.08 |
---|---|
MFC - MFC에서 Thread 종료시 주의할 점 (0) | 2017.11.30 |
MFC - 타이틀바(Titlebar) 와 테두리(Border) 에 이미지 넣기 (2) | 2017.09.28 |
MFC - 버튼 연속 클릭 시 인식이 안되는 문제 (0) | 2017.09.25 |
MFC - Dialog Item의 배경을 투명하게 만들기 (0) | 2017.09.22 |