MFC中线程问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:32:51
我知道线程创建的方法是:
void CAsdfeDlg::OnButton1()
{
// TODO: Add your control notification handler code here
HANDLE hThread1;
hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,0);
CloseHandle(hThread1);
Sleep(100);
}
DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
MessageBox("dd");
}
上面这样没有问题.但是,我想在线程中调用类中的成员,所以想将线程Fun1Proc定义成类的成员函数即:DWORD WINAPI CAsdfeDlg::Fun1Proc(LPVOID lpParameter){},但是这样的话,系统报错:
D:\C++\asdfe\asdfeDlg.cpp(177) : error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'
None of the functions with this name in scope match the target type
请问一下怎么解决这个问题.谢谢
上面那个程序有点点问题,修改一下:
DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
MessageBox(NULL,"dd","dd",MB_OK);
return 0;
}
void CAsdfeDlg::OnButton1()
{
// TO

DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
MessageBox(NULL,"dd","dd",MB_OK);
return 0;
}

这个函数不能为类的成员函数,如果一定要想把它加到类中,在将其声明成静态成员函数, 在类中如下声明
static DWORD WINAPI Fun1Proc(LPVOID lpParameter)