用静态成员函数调用非静态成员变量
今天写程序要用到一个计时器,然后需要创建一个新的线程,这个线程是CtestDLG的一个成员函数,必须定义为静态的.但是这个时候就不能去访问非静态成员变量了,这里找到一个很好的解决办法: 先上代码: 1.线程函数的定义: private: int Count_time; CTime C_time; bool GetQuestion(); int mark;//考试分值,五个题目,一个20分,满分100 int QS[5];//随机题库序号 int count2;//题库总数 int count_Q;//当前输出的题目数量 static DWORD WINAPI Fun_Time(LPVOID lpParameter); }; 我们可以看到这个是一个类的成员函数 2.创建线程 void CTESTDlg::ONTIME() { HANDLE pThread_time = NULL; pThread_time = CreateThread(NULL,0,Fun_Time,this,0,NULL); } 这个是在一个消息函数中创建的.第四个参数传递的是一个this指针,指向当前的窗口类(这里很重要) 2.具体实现 DWORD WINAPI CTESTDlg::Fun_Time(LPVOID lpParameter) { CTESTDlg* temp = (CTESTDlg*