|
답변 감사합니다~
새 프로젝트를 만들어서 해보진 않았습니다만,
제가 지금 하고 있는게 a라는 메인폼이 항상 있고 b라는 폼을 또 생성해서 사용하는데요,
메인폼인 a가 끝날 땐 a 폼의 FormDestroy BP 가 걸립니다.
그런데... b 폼(풍선말 폼)을 띄울 때 또 다른 시점에 b폼을 띄우는 동작을 할 수가 있습니다. 고롤땐 이전 풍선말 폼을
지우고 최근거 하나만 띄워야 해서 현재 내가 NULL이 아니라면 delete 하고 폼을 다시 띄우려고 하는데요.
코드상으로는
b frm_b;
void b :: MsgBox()
{
if( frm_b != NULL)
{
delete frm_b;
frm_b = NULL;
frm_b = new b();
}
else
{
frm_b = new b();
}
frm_b->띄워();
}
그리고 b 클래스 내부에 FormDestroy 함수를 넣었습니다.
요로케 해쓸 때 조기 위에 delete frm_b 하는 시점에 FormDestroy 함수에 BP가 안걸리는데요..
문제 될건 없어 뵈는데 왜 BP가 안걸릴까요..? 수야님께서 말씀하신 메모리 침범문제는 몬가용?
혹시 저렇게 하면 안되는건가요? 만약 안된담 다른 방법 추천보담은 왜 안되는지좀 갈켜주시면 감사하겠어요~;;
수야!╋ 님이 쓰신 글 :
: 수얍니다.
:
: 기본적으로는 FormDestroy에 Break Point는 걸리게 되어있습니다.
:
: 걸리지 않는다면 메모리 침범이나 이벤트 함수와 연결이 되어있지 않은 상태의 가능성이 큽니다.
:
: 전체적인 상황을 알지 못하여 걸리지 않는 상황일 가능성이 크다고 생각되네요
:
: 정상적인 경우 걸리는지 않걸리는지 확인하시고자 한다면
:
: 새 프로젝트에서 해당 이벤트 함수를 생성해서 Break Point를 잡아보시기 바랍니다.
:
:
:
: 수 님이 쓰신 글 :
: : FormDestroy 함수는 해당 객체의 메모리를 해제할 때 호출되는 것으로 알고 있는데요..
: :
: : break를 걸어도 걸리지가 않네요..
: :
: : 원래 FormDestory는 break에 안걸리나요?
|