mfc线程函数创建出错
voidCKongzhiDlg::thread()//线程{}voidCKongzhiDlg::Onconnect(){CreateThread(NULL,0,(LPTH...
void CKongzhiDlg::thread()//线程
{
}
void CKongzhiDlg::Onconnect()
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thread,NULL,0,thread1);
}
下面是定义
class CKongzhiDlg : public CDialog
{
// Construction
public:
void thread();
}
出错信息
c:\users\lenovo\desktop\hah\kongzhidlg.cpp(346) : error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)' 展开
{
}
void CKongzhiDlg::Onconnect()
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thread,NULL,0,thread1);
}
下面是定义
class CKongzhiDlg : public CDialog
{
// Construction
public:
void thread();
}
出错信息
c:\users\lenovo\desktop\hah\kongzhidlg.cpp(346) : error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)' 展开
2个回答
展开全部
线程函数是这样的定义:
DWORD WINAPI ThreadProc(
_In_ LPVOID lpParameter
);
而你声明为成员函数,那么就多了一个this默认参数,且你的方式还少了LPVOID参数
正确的做法是
声明为
static DWORD thread(LPVOIOD);
定义为
DWORD CKongzhiDlg::thread(LPVOID lpvoid)//线程
{
return 0;
}
DWORD WINAPI ThreadProc(
_In_ LPVOID lpParameter
);
而你声明为成员函数,那么就多了一个this默认参数,且你的方式还少了LPVOID参数
正确的做法是
声明为
static DWORD thread(LPVOIOD);
定义为
DWORD CKongzhiDlg::thread(LPVOID lpvoid)//线程
{
return 0;
}
参考资料: http://msdn.microsoft.com/zh-cn/library/ms682453
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询