|
답변 감사합니다~~
송신영 님이 쓰신 글 :
: * File1.h ---------------
: extern bool Value_1;
: extern bool Value_2;
:
: * Unit1.cpp ------------
: bool Value_1;
: bool Value_2;
:
: * Unit2.cpp ------------
: // 변경할거 없음.
:
: 이렇게 변경하면됩니다.
: 변수를 글로벌로 선언하고자 할 경우 실제 변수 선언은 cpp에서 하고
: 다른 파일에서 사용하고자 하면 extern 하여 사용해야합니다.
:
:
:
: 걸음이 느린 아이 님이 쓰신 글 :
: : File1.h에는 extern으로 선언하여
: : 사용해야 Unit1과 Unit2 모두 같은 변수를 사용하게 된다고 하셨는데요...
: : 이게 무슨 말인지... 어찌 선언 해야 하는건지... 이해가 안되는데요.. 한번 더 설명 해주실 수 있나요..??
: : 빌더 초보자라...
: :
: :
: : 송신영 님이 쓰신 글 :
: : : 이런 실수 하시는 분이 상당히 많으시네요...
: : : File1.h에 변수를 선언하고
: : :
: : : Unit1.cpp와 Unit2.cpp에서 Include 하시면
: : : 각각의 Value_1은 서로 다른 변수 입니다.
: : : 브래이크 걸어서 변수 확인히 true로 보이는 것은 Unit1.cpp의 변수 값이 보이는 것입니다.
: : : 변수를 Unit1.cpp에 선언하시고 File1.h에는 extern으로 선언하여
: : : 사용해야 Unit1과 Unit2 모두 같은 변수를 사용하게 됩니다.
: : : 변수를 해더에 선언하지 마세요!
: : :
: : : 컴파일 시에 Warning 옵션을 모두 켜두면
: : : _Value_1과 _Value_2가 중복하여 선된되었다는 warning이 발생하는 것을 확인할 수 있습니다.
: : :
: : :
: : : 걸음이 느린 아이 님이 쓰신 글 :
: : : : Unit2.cpp 에서
: : : :
: : : : void __fastcall Thread_1::RunCHK()
: : : : {
: : : : if (Value_1 == true){
: : : : Reading();}
: : : : else if (Value_2 == true){
: : : : Writting();}
: : : : }
: : : :
: : : : 이 부분에 Value_1 값이 ture 인데... Reading()으로 넘어가지 않네요....
: : : :
: : : : 이유를 모르겠습니다.
|