|
처음에 얼른봐서 몰랐는데..
한참 봤네요
메모리 누수에 관해
[문제 1]
void __fastcall TfrmVKey::DrawKeyboard() 이 함수에서요
clipRgn = CreateRectRgnIndirect(&client); //이부분에 문제가 있습니다.
작업이 끝난후 DeleteObject(clipRgn); 로 delete해주십시요
[문제 2]
뭐 크게 문제가 안될수도 있지만
kList 에 AddKey함수로
KEYDEF *key = new KEYDEF;를 new를 많이 했는데...
프로그램종료할때 kList만 clear하고 delete하더군요
kList안에 있는 key들도 delete를 해줘야...
clear한다고 delete되지 않습니다.
[추신]
개인적으로 메모로누수를 찾을때
첫째로 new와 delete가 짝이 맞는지 확인합니다.
그리고 두번째로 작업관리자 띄워두고 열선택에서 죽 선택하죠
메모리 ,페이지폴트,핸들,스레드,User개체 , GDI등...
그리고 그것들의 변화량을 지켜봅니다.
이번경우가 같은경우 메모리 변화량도 있지만
GDI개체가 자꾸 올라가더군요
그럼....
Dreamingguy 님이 쓰신 글 :
: 2주 넘게 가상키보드 만드느라 삽질중입니다.
: 온세미 님께서 올려놓으신 델파이 소스를 참고해서 만들긴 했는데, 작업 관리자에서 보면 메모리가 증가합니다.
: 키보드 폼에서 메시지를 처리하지 못하고 쌓이는 것인지...
: WM_NCACTIVATE 이벤트 처리 부분이 델파이 소스에서는 inherited라고만 되어있습니다...
:
: 다들 바쁘시겠지만 많은 가르침 부탁드립니다.
|