728x90

CImage를 이용하여 많은 이미지를 사용하고 있었는데, 이미지를 변경할 때마다 Memory Leak이 발생하는 현상을 발견하고,


구글링을 해도 딱히 방법이 나오지 않아서 직접 테스트하다가 해결하였다.


기존 코드


위의 경우 분명 DeleteObject() 를 이용해서 hOldBmp 를 지우기 때문에 메모리 릭이 없을 거라 판단을 하고 작업을 진행하고 있었다. 


하지만 여러가지 테스트 결과 DeleteObject() 한번 더 해줘야 하는 것 같다.


수정한 코드


우선 img를 static으로 선언하여 계속 가지고 있으면서 이미지를 변경할 때마다 img를 Destroy()하고 또 한번 DeleteObject()를 해야만 Memory Leak이 발생하지 않았다.



MFC를 이용해서 UI 작업 하는 게 생각만큼 쉽지는 않나보다... ㅎㅎ

728x90

+ Recent posts