|
쓰레드를 꼭 헤더파일에 정의해야 할 이유는 없습니다. 헤더 파일에 정의하는 경우 제3의 Module에서 쓰레드를 정의한 모듈을 다시 참조할 경우에 필요해서 쓰는 이유밖에 없습니다.
제 경우는 한개의 모듈(Main 모듈이 되겠지요)에서만 쓰레드를 사용하기 때문에 CPP 에만 정의해 사용하고 있습니다.
그렇지 않고 여기 저기 여러 모듈에서 동일한 쓰레드를 제어할 필요가 있다면 차라리 Global 모듈을 하나 만들고 extern 으로 선언해서 사용하세요...
global.h 파일에는 extern Threads* pThread ;
global.cpp 파일에는 Threads* pThread ;
이렇게 정의해 놓고
Main.h 모듈이 있다는 가정하에 #include "global.h"
만 선언하면 사용할 수 있습니다.
도움이 안된다면 지금 하고 있는 소스를 올려 놓으시면 답변을 드리지요...
사악왕 님이 쓰신 글 :
: 저의 질문방식이.... 조금많이 ㅜ.ㅜ 난제인가보네요ㅠ,ㅠ
:
: 예전에는요 cpp안에서 쓰래드를 사용할꺼라는 선언을 했거든요.
: 그래서 이제는 h안에다가 쓰래드를 사용할꺼라는 선언을 하자라는 생각에
: 그렇다고 다시 cpp안에 다가 선언을 하고 사용을 하면 되는데 그렇게 하면 나중에 문제가 심각해질까봐
: 지금부터라도 h안에다가 선언을 할려고 하고 있습니다.
:
: 이해가 않되는겁니다.
:
: #include는 다했습니다.
: #include는 빼먹지 않고 꼬박꼬박 하고 있습니다....
:
: 질문1과 질문2는 공통적인 문제가 있습니다.
:
: 헤더파일에서 선언을 못한다는겁니다....
: 헤더파일에다가 선언을 할경우에는
: E2303 Type name expected ->에러가 떠서 절 난감하게 만들뿐입니다.
:
:
: 김시환 님이 쓰신 글 :
: : 질문의 내용이 어려운거 보다는 질문의 내용이 뭔지를 이해하는게 더 어렵네요...
: : 좀 답변하는 사람이 이해하기 쉽도록 질문을 해 주시면 답변도 더 정확해 질듯 한데요..
: :
: : 그냥 제가 이해한 범위내에서
: :
: : 질문1 의 경우 Threads 를 선언한 헤더 파일을 #Include 할때 Untd.chh (Untd.cpp 파일일 듯 한데) 에 선언되어 있어서 그럴 겁니다. Untd.h 에 선언하고 싶다면 Untd.h 파일에 #Include 를 선언해 보세요...
: :
: : 질문2 도 동일한 경우 일듯 한데요.. TIn *f_th 를 사용하기 위한 헤더 정의가 빠져 있어서 그럴겁니다.
: :
: : TIn 을 정의한 헤더 파일을 void __fastcall ppp(TIn *f_th); 를 선언한 파일의 맨 위에 #include 해 보세요...
: :
: : 사악왕 님이 쓰신 글 :
: : : 질문1 쓰래드를 생성하고 쓸려고 하면
: : :
: : : 불르는 곳에서
: : :
: : : Threads *a;
: : : 이런식으로 해서 쓰래드를 부르는걸로 알고 있는되요
: : : Untd.chh에서 Threads *a; 위쪽에다가 입력하면 에러가 않뜨고요
: : : Untd.h에서 Threads *a; 할경우는 에러가 뜨더라고요
: : : [BCC32 Error] Untd.h(249): E2303 Type name expected
: : : 이러한 에러가 왜 뜨는지 모르것습니다....
: : :
: : :
: : : 질문2
: : :
: : : void __fastcall ppp(TIn *f_th);
: : :
: : : 이런식으로 ppp(쓰래드 );
: : : 받을려고 하는되요 파라메터값으로요
: : : 하면 이런한 에러가 뜨더라고요
: : : [BCC32 Error] UntCo.h(60): E2293 ) expected
: : : 저것을 입력을 하면요
: : : 왜 그러는지 모르것습니다.
|