|
* 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()으로 넘어가지 않네요....
: : :
: : : 이유를 모르겠습니다.
|