线程问题,help

liang13144 2003-06-13 06:15:47
.h中
class CToolDlg : public CDialog
{
// Construction
public:
DWORD WINAPI BuildFileProc(LPVOID lpParam);
DWORD BuildFile();
........
}

.cpp中
void CToolDlg::OnOK()
{
// TODO: Add extra validation here
HANDLE hThread = NULL;
DWORD dwId = 0;
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)BuildFileProc,this,0,&dwId);
return ;
}

DWORD WINAPI CToolDlg::BuildFileProc(LPVOID lpParam)
{
CToolDlg* pThis = (CToolDlg *)lpParam;
return pThis->BuildFile();
}

DWORD CToolDlg::BuildFile()
{
}


编译报错:error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'
None of the functions with this name in scope match the target type


如何解决?谢谢
...全文
37 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liang13144 2003-06-14
  • 打赏
  • 举报
回复
可以是类函数,我以前看别人这样调用过:
DWORD WINAPI CToolDlg::BuildFileProc(LPVOID lpParam)
{
CToolDlg* pThis = (CToolDlg *)lpParam;
return pThis->BuildFile();
}
alongzju 2003-06-13
  • 打赏
  • 举报
回复
线程函数不能用成员函数,用全局函数,或者static的成员函数。
potatoli 2003-06-13
  • 打赏
  • 举报
回复
线程的函数BuildFileProc()应该是全局的,而不是某各类的

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧