|
C++Builer 초보입니다 Thread에 질문이 있어서 글 올립니다
class A
{
TThread* m_pListenThread;
void Init()
void __fastcall A_ListenThreadProc(void);
}
void A::Init()
{
m_pListenThread = new TThread(false);
// [C++ Error] IOCPSWin.cpp(167): E2352 Cannot create instance of abstract class 'TThread'
// [C++ Error] IOCPSWin.cpp(167): E2353 Class 'TThread' is abstract because of '_fastcall TThread::Execute() = 0'
m_pListenThread->Execute = A_ListenThreadProc;
// [C++ Error] IOCPSWin.cpp(169): E2247 '_fastcall TThread::Execute()' is not accessible
}
위와 같은 에러가 납니다
제가 할려고 하는거는 A_ListenThreadProc 포인터를 넘겨주고 A_ListenThreadProc 내에서 즉 Class A내에서 작업을
할려고 하는데 이런 에러가 나네요 물론 TThread를 상속받은 Class를 만들고 그 클래스 안에서 Execute()함수 내에서
작업을 할수 있지만 소스 자체가 유연해 보이지 않고 또한 서로 상호 참조가 될것 같다는 생각에서 위와같은
코딩을 하게 되었습니다
해결할 방법을 좀 아시는분은 답변 꼭좀 부탁드립니다
VC++ 은 AfxBeginThread를 통해서 작업 함수를 포인터로 등록할수 있는것으로 알고있는데요 똑같은 기능을 C++Builer 에서
구현하고자 합니다 답변 꼭 부탁드립니다
|