求解类静态成员访问类成员变量问题
有3个类 A B C
Class C
{
Public:
A aa;
B bb;
int ee;
void mFun();
static Fun(PVOID);//用作线程函数
}
通过以下方法后在Fun内能调用到 C的成员,ee,mFun,但是引用 aa,和 bb,的方法就出错,求教问题!
mFun包含 普通操作也可以直接用,但是如果涉及 aa,bb,也会出错!
#define CALL_IN_THREAD_DEF(ClassName) \
typedef void (ClassName::*CFunPoint)(); \
CFunPoint m_CallFun; \
void ClassName::CallInThread( CFunPoint CallFun, \
CString ShowINF=_T(""), \
CString ErrINF=_T(""), \
BOOL AllowStop=FALSE, \
BOOL ShowDlg=TRUE) \
{ m_CallFun=CallFun; \
MyBeginThread( ThreadFun, \
ShowINF,ErrINF,AllowStop,ShowDlg);} \
\
static UINT ClassName::ThreadFun(LPVOID pParam) \
{ \
ClassName *m_This=(ClassName*)pParam; \
(m_This->*(m_This->m_CallFun))(); \
return 0; }
Class C
{
Public:
A aa;
B bb;
int ee;
void mFun();
static Fun(PVOID);//用作线程函数
}
通过以下方法后在Fun内能调用到 C的成员,ee,mFun,但是引用 aa,和 bb,的方法就出错,求教问题!
mFun包含 普通操作也可以直接用,但是如果涉及 aa,bb,也会出错!
#define CALL_IN_THREAD_DEF(ClassName) \
typedef void (ClassName::*CFunPoint)(); \
CFunPoint m_CallFun; \
void ClassName::CallInThread( CFunPoint CallFun, \
CString ShowINF=_T(""), \
CString ErrINF=_T(""), \
BOOL AllowStop=FALSE, \
BOOL ShowDlg=TRUE) \
{ m_CallFun=CallFun; \
MyBeginThread( ThreadFun, \
ShowINF,ErrINF,AllowStop,ShowDlg);} \
\
static UINT ClassName::ThreadFun(LPVOID pParam) \
{ \
ClassName *m_This=(ClassName*)pParam; \
(m_This->*(m_This->m_CallFun))(); \
return 0; }
作者: foolishzwt 发布时间: 2011-06-14
aa,bb 不是静态成员
作者: piont_s21 发布时间: 2011-06-14