问题来自于一个视频捕捉的程序,我想要将通过按键进行逐帧捕捉的程序,修改成实时捕捉,这样需要在MFC中创建一个线程。
问题是,线程相当于一个全局函数(不知道这样理解正不正确),当我开始创建线程的时候,出现了错误:
....
DWORD WINAPI Thread1Proc (
LPVOID lpParameter //thread data
)
{
m_bRun = True;
While(m_bRun)
{
OnBtnHandTracking(); //相关的视频捕捉,运动跟踪的函数
}
}
它指出OnBtnHandTracking()这个函数没定义。在这里,我们需要添加一个对象来调用这个函数,具体实现如下:
前面定义一个现场函数
DWORD WINAPI ThreadProc( LPVOID lpParam )
{
CtestDlg*pDlg = (CtestDlg*)lpParam;
ASSERT(pDlg);
While(m_bRun)
{
pDlg->OnBtnHandTracking();
}
return 1;
}
创建线程的地方。
CreateThread(
NULL,
0,
ThreadProc,
(void*)this ,
0,
NULL);
//(摘自http://zhidao.baidu.com/question/103798749)