C++ 中静态成员函数访问非静态成员变量的方法

时间:2021-11-16 05:15:40

最近在 VS2010 里开发出厂烧写工具,遇到一个问题:

  我创建了一个线程,在这个线程里要访问非静态成员,而这个线程函数是静态的。最后找到的办法是用对象指针来做。

sourcecode:

 #test.h

 class Test
{
protect:
static UINT threadFun(LPVOID pParam); private:
int a;
}
 #test.cpp

 AfxBeginThread(CTestThreadApplyDlg::threadFun, this);

 UINT CTestThreadApplyDlg::threadFun(LPVOID pParam)
{
CTestThreadApplyDlg *test = (CTestThreadApplyDlg*)pParam;
test->a = ; afxDump << "a" << test->a << "\n";
return ;
}

一点要注意的是 threadFun 的返回值必须是 UINT ,否则会提示错误。