void CADSL_Auto_DialDlg::OnBnClickedButton1()
{
CWinThread *thread;
thread=AfxBeginThread(&CADSL_Auto_DialDlg::RasDial_Go,(LPVOID)this);
CWinThread *thread;
thread=AfxBeginThread(RasDial_Go,(LPVOID)this);
}
其他的地方没什么大问题。主要问的是线程的第一个参数调用不正确。就是不知道这个静态的函数怎么在CADSL_Auto_DialDlg类中调用???因为它一直是提示说不能在这个类里调用静态函数什么的?唉。。
追答就是不知道这个静态的函数怎么在CADSL_Auto_DialDlg类中调用???
这句话什么意思?“这个静态的函数”是指什么?
就是你说的这个。。”线程入口函数不能为成员函数,除非它是静态函数,“。。。在类CADSL_Auto_DialDlg中调用线程入口函数。。说什么非静态成员函数不能调用的提示错误。。还是希望能提供一下代码例子就明白啦!!
追答那你的第一个线程创建函数里的线程入口函数名直接用RasDial_Go,不用写成(&CADSL_Auto_DialDlg::RasDial_Go。然后在这个入口函数里面,如果是对CADSL_Auto_DialDlg这个类的其它非静态成员变量或成员函数进行调用,那就要通过this来调用这个类的实例了。入口函数的定义应该是这样
RasDial_Gl(LPVOID lpParam)
{
CADSL_Auto_DialDlg* pDlg=(CADSL_Auto_DialDlg*)lpParam;
/// 这样,通过pDlg->来调用成员变量和成员函数
}
线程创建函数应该是这样
thread=AfxBeginThread(RasDial_Go,this);