MFC의 GDI/GDI+ 리소스 누수 현상

 http://support.microsoft.com/kb/319740/

 위 KB 문서를 보시면 Windows XP SP2 와 Windows Server 2003 에서 테마를 사용하는 경우 MFC로 작성된 프로그램에서 GDI 리소스 누수가 나타난다고 설명이 되어 있습니다.

저도 직접 테스트 해보았는데 이상하게도 테마가 켜져 있고 MFC를 사용하는 경우에만 나타납니다. 리소스 누수 때문에 디버거와 데브 파트너 같은 프로그램 붙잡고 고생 하시는 분이 혹시 계실 까봐 올려봅니다.

참고로 영문 KB 페이지에는 이에 대한 Hot Fix 다운로드 링크가 있습니다.

Re: ———————————————————————-

어떻게 체크해봐야 하죠?
CFileDialog 를 DoModal로 여러번 열었다 닫았다 한 후에,
어플리케이션 종료하고 디버그 창을 봤는데, 메모리 릭은 안나타나는데요…

Re: ———————————————————————-

메모리 릭이 아닌 GDI 핸들 릭입니다.
KB 문서에 적힌 대로 차일드 윈도를 생성/삭제를 반복 해서 실행 하면
GDI 핸들 갯수가 4~8개 씩 올라 가고 안 내려 가는 것을 작업관리자에서
확인 하실 수 있을 겁니다.

Re: ———————————————————————-

오옷. 확인했습니다.
그런데… 업데이트 나올때까지 그냥 살아야 하나 봐요…? ㅋㅋ
정보 감사합니다.

Re: ———————————————————————-

문제가 되는 부분이 XP의 테마 관련 DLL 인 Uxtheme.dll 에 있기 때문에
우리 Application 개발자가 크게 해줄 수 있는게 없네요. 사용자에게 해당
패치를 설치 하게금 하는 것 외엔..
아마 XP Service Pack 3 가 나올 때 쯤이면 한꺼번에 패치 되겠죠..

Re: ———————————————————————-

아! 이런 어처구니없는… 그런줄도 모르고 다른 사람을 의심했다는…
개발자가 할 수 있는거라곤 XP테마를 지원하지 않는거로군요 ㅋㅋ

Leave a Reply