|
A라는 폼은 동적으로 만든건가요? 디자인타임에서 추가한건가요?
A의 형은 순수한 TForm인가요? TForm을 상속받은건가요?
Function()은 무슨 기능인가요?
m_nValue 는 누구의 멤버변수인가요? B?
...
불확실하지만 대략 상황을 유추해보면....
TForm을 상속받은 어떤 클래스(TForm1)가 있고,
A를 TForm1 형으로 동적 생성을 하고 싶었는데
new로 생성을 안하고 포인터만 선언한 상태로 Function()을 사용.
Function()에서 에러가 났지만, 정상적으로 실행 된것으로 착각하고 변수를 의심...
과 같은 상황 인듯 하네요.
아래처럼 해보세요.
TForm1 *A = new TForm1(this);
빌더 초보자 님이 쓰신 글 :
: 안녕하세요.
: 프로그래밍 도중 아래와 같은 예상치 못한 문제로 인해 진행이 되질 않습니다.
: 고수님들에 답변 부탁드립니다.
:
: - 아 래 -
:
: 하나의 폼을 생성했습니다.
: TForm *A;
:
: 그리고 A라는 Form을 B라는 클레스에서 사용하고자 하여
: CPP 파일에 헤더를 올렸고
:
: A->Function();
: 을 실행하였습니다. 그런데
:
: m_nValue = 50; -> 디버그시 m_nValue 멤버 변수에 정상적으로 50 이라는 값이 잘 들어가 있습니다.
: A->Function(); -> 정상적으로 실행됩니다.
: m_nValue++; -> m_nValue 멤버 변수값이 "????" 으로 되어 있어 "++" 연산이 되질 않고 뻑납니다.
: -> A->Function() 함수를 실행하지 않으면 정상적으로 m_nValue++의 값과 "++" 연산이 이루어집니다.
: -> 지역변수를 사용할 경우 A->Function()을 실행하여도 값은 정상적으로 유지 됩니다.
:
: 도데체 어떤 사황때문에 이와 같은 문제가 발생되고 어떻게 하면 해결할 수 있는지 고수님들 부탁드립니다.
:
:
:
:
:
:
:
:
:
:
|