|
일단 헤더에있는 __fastcall TImpThread(void); 선언부와 CPP에있는 실제 함수 __fastcall TImpThread::TImpThread(bool CreateSuspended)가 다릅니다... 헤더에 선언은 인자가 없는 void이지만 실제 구현에는 인자를 넘겨 주어서 에러내용처럼 함수를 찾을수 없다는 에러가 발생한것입니다.
한태희 님이 쓰신 글 :
: 안녕하세요.. C빌더를 공부 중입니다.
: 팁&트릭에서 쓰레드 사용법을 써보는데 이런 에러가 뜨네요..
: [C++ Error] Unit2.cpp(11): E2316 '_fastcall TImpThread::TImpThread(bool)' is not a member of 'TImpThread'
:
: 프로그램은 아래와 같이 작성 하였습니다.
: 어떻게 해야 해결이 될까요...
: 제가 아직 공부 한지 얼마 않 되서 빌더 설정에서 뭔가를 고쳐야 하는데 않 고쳤는지..
: 뭔가 빼먹었는지 알려 주세요~ 감사합니다.
:
: Unit2.cpp파일
:
: //---------------------------------------------------------------------------
:
: #include <VCL.H>
:
: #pragma hdrstop
:
: #include "Unit2.h"
:
: //---------------------------------------------------------------------------
: __fastcall TImpThread::TImpThread(bool CreateSuspended)
: : TThread(false)
: {
: Priority = tpTimeCritical;
: }
:
: //---------------------------------------------------------------------------
: void __fastcall TImpThread::Execute()
: {
: //---- Place thread code here ----
: qq = 0;
: while(!Terminated)
: {
: qq++;
: if(qq%100==0)
: Synchronize(ShowStatus);
: }
:
: }
: void __fastcall TImpThread::ShowStatus(void)
: {
: Form1->Caption = qq;
: }
:
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
:
:
: Unit2.h 파일
: //---------------------------------------------------------------------------
:
: #ifndef Unit2H
: #define Unit2H
:
: #include "unit1.h"
: #include <Classes.hpp>
:
: class TImpThread : public TThread
: {
: private:
: int qq;
: protected:
: void __fastcall Execute();
: public:
: __fastcall TImpThread(void);
: void __fastcall ShowStatus(void);
: };
: #endif
|