注册 登录
编程论坛 C++教室

求助,VS2012 MFC创建线程问题

vv083 发布于 2013-11-08 19:48, 627 次点击
void CMFCApplication1Dlg::OnBnClickedButton1()
{
    CWinThread* id;
    id=AfxBeginThread(ThreadProc1,(LPVOID)this);// TODO: 在此添加控件通知处理程序代码
}
static UINT ThreadProc1(LPVOID pParam)
{
    int a=AfxMessageBox("adfafd",MB_OK,1);
    return a;
}

ThreadProc1函数我在头文件里也定义过了啊,但是一运行就说无法解析外部命令。。。
1>MFCApplication1Dlg.obj : error LNK2019: 无法解析的外部符号 "public: static unsigned int __cdecl CMFCApplication1Dlg::ThreadProc1(void *)" (?ThreadProc1@CMFCApplication1Dlg@@SAIPAX@Z),该符号在函数 "public: void __thiscall CMFCApplication1Dlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMFCApplication1Dlg@@QAEXXZ) 中被引用
1>c:\users\parker\documents\visual studio 2012\Projects\MFCApplication1\Debug\MFCApplication1.exe : fatal error LNK1120: 1 个无法解析的外部命令

跪求,问题到底处在哪了啊?
4 回复
#2
yuccn2013-11-08 20:13
你是否在静态成员中函数中申明了CMFCApplication1Dlg::ThreadProc1?如果是 那么就改成这样把

void CMFCApplication1Dlg::OnBnClickedButton1()
 {
     CWinThread* id;
     id=AfxBeginThread(CMFCApplication1Dlg::ThreadProc1,(LPVOID)this);// TODO: 在此添加控件通知处理程序代码
 }
UINT CMFCApplication1Dlg::ThreadProc1(LPVOID pParam)
 {
     int a=AfxMessageBox("adfafd",MB_OK,1);
     return a;
 }
#3
vv0832013-11-08 20:19
是不是 LPVOID pParam必须用上才行?
#4
vv0832013-11-08 20:21
版主果然厉害。。。果断膜拜啊~~~非常感谢~~
#5
vv0832013-11-08 20:23
估计前一个回调函数的问题可能也是如此。。。一语惊醒梦中人啊。。。
1