最近在 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 ,否则会提示错误。