|
우선 문제가 발생되는 부분은 보이지 않습니다.
새 프로젝트로 테스트 한 결과로도 정상적으로 동작됨을 확인하였답니다.
저렇게 사용하시면 안되는것도 아니기에 답변이 모호해지는군요.
제가 말씀드린 메모리 침범 문제는 많은 부분에서 발생할 수 있습니다.
그래서 새 프로젝트로 테스트를 해보시라 말씀드리는 것이지요.
새 프로젝트에서 정상적으로 동작한다면 대부분 메모리 침범이나 Obj 링크 문제가 대부분이니까요
특정 메모리 블럭을 밀어버렸다거나 하는 문제가 흔히 발생하곤 한답니다.
우선 새로운 프로젝트에서 테스트해보시고 기존 소스들을 하나씩 가져다 붙여 어디서 문제가 발생하는가를 확인해보시는게 좋을것 같네요.
1. 틀린 사용방법이 아닙니다.
2. 정상적이라면 B에서도 브레이크포인트는 걸립니다.
도움이 못되드린것 같군요.
수야였습니다.
수 님이 쓰신 글 :
: 답변 감사합니다~
:
: 새 프로젝트를 만들어서 해보진 않았습니다만,
:
: 제가 지금 하고 있는게 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에 안걸리나요?
|