GUI Toolkit/MFC
MFC - CImage Memory Leak
Stayner
2017. 11. 17. 13:20
728x90
CImage를 이용하여 많은 이미지를 사용하고 있었는데, 이미지를 변경할 때마다 Memory Leak이 발생하는 현상을 발견하고,
구글링을 해도 딱히 방법이 나오지 않아서 직접 테스트하다가 해결하였다.
기존 코드
위의 경우 분명 DeleteObject() 를 이용해서 hOldBmp 를 지우기 때문에 메모리 릭이 없을 거라 판단을 하고 작업을 진행하고 있었다.
하지만 여러가지 테스트 결과 DeleteObject() 한번 더 해줘야 하는 것 같다.
수정한 코드
우선 img를 static으로 선언하여 계속 가지고 있으면서 이미지를 변경할 때마다 img를 Destroy()하고 또 한번 DeleteObject()를 해야만 Memory Leak이 발생하지 않았다.
MFC를 이용해서 UI 작업 하는 게 생각만큼 쉽지는 않나보다... ㅎㅎ
728x90