我写了一个Template Class ,目的是对CWinThread 进行封装,但是,我的template class的InitInstance 和 ExitInstance 永远不会执行道,为何?
//CTThread.h:#pragma once
template <class T>
class CTThread : public T
{
public:
CTThread()
{
};
virtual ~CTThread()
{
};
virtual BOOL InitInstance()
{ TRACE0("InitInstance \n");
return T::InitInstance();
};
virtual int ExitInstance()
{
TRACE0("ExitInstance ");
return T::InitInstance();
};
void Foo()
{
//do something
;
};
private:
//member.
};使用:
CRuntimeClass* prtt = RUNTIME_CLASS( CTThread<CWndThread> );
::AfxBeginThread((CRuntimeClass*)prtt,THREAD_PRIORITY_NORMAL,0,0,NULL);
从结果看,线程是创建成功了,但是呢,template class 的 InitInstance 和 ExitInstance 不会执行.
高手们,如何解释和解决?
//CTThread.h:#pragma once
template <class T>
class CTThread : public T
{
public:
CTThread()
{
};
virtual ~CTThread()
{
};
virtual BOOL InitInstance()
{ TRACE0("InitInstance \n");
return T::InitInstance();
};
virtual int ExitInstance()
{
TRACE0("ExitInstance ");
return T::InitInstance();
};
void Foo()
{
//do something
;
};
private:
//member.
};使用:
CRuntimeClass* prtt = RUNTIME_CLASS( CTThread<CWndThread> );
::AfxBeginThread((CRuntimeClass*)prtt,THREAD_PRIORITY_NORMAL,0,0,NULL);
从结果看,线程是创建成功了,但是呢,template class 的 InitInstance 和 ExitInstance 不会执行.
高手们,如何解释和解决?
解决方案 »
- 静态调用DLL函数提示:The value of ESP was not properly saved across a function call.
- 求助 按钮响应函数咋写??
- dependency walker问题
- 如何用DeviceIOcontrol禁止文件访问??急,只要对另外还有送分
- 请教SetTimer的问题
- 我想在listview中加入combox支持,不知道该怎么实现? 不够再加!来者有分!
- 如何识别jpg、gif格式的验证码
- 提问,关于拆分窗体?!
- 关于CView类的Creat()中的参数说明?
- 图像处理的问题,高手请进!
- 十万火急!!
- 请推荐一本介绍WINDOWS原理和内部机制的书。
~~~~~~~~~改称CWinThread
// ((CRuntimeClass*)(&CTThread<CWndThread>::classCTThread<CWndThread>))