关于线程~~~~~重谢,70分!!!

slihai 2001-06-05 05:56:00
在程序中这样开始一个线程调用为什么出错??


行338: CWinThread *mythread;
行339: mythread=AfxBeginThread(DoWithMsges,&m_hWnd,THREAD_PRIORITY_BELOW_NORMAL,0,CREATE_SUSPENDED);


以上是在一个基于对话框的应用程序中的代码段,其中DoWithMsges是在对话框中定义的一个 Public void方法!

编译出错信息是
E:\VC\newsock\newsockDlg.cpp(339) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'void (void *)'

请问是什么原因,我是第一次用线程这东西,不知道怎么用,是不是还需要其他的代码啊?


...全文
132 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
不解 2001-06-06
  • 打赏
  • 举报
回复
对函数加上域作用符,如在CMyDialog中定义,则为CMyDialog::Do...;
slihai 2001-06-06
  • 打赏
  • 举报
回复
好了,有功的各位都表示了一下!多谢各位的帮忙!!!!
littleme741 2001-06-05
  • 打赏
  • 举报
回复
呵呵,没关系了,帮你解决问题才是主要的。
slihai 2001-06-05
  • 打赏
  • 举报
回复
怎么不让我加分啊!!!对不起,我加不上分啊!!
littleme741 2001-06-05
  • 打赏
  • 举报
回复
HealthMeng(Health) 说的正确,应该是这个函数必须要有返回值,而且必须为UINT类型,当然该函数既可以是全局函数,也可以是静态成员函数,注意,函数必须要有返回值,附加MSDN中的说明:
pfnThreadProc

Points to the controlling function for the worker thread. Cannot be NULL. This function must be declared as follows:

UINT MyControllingFunction( LPVOID pParam );

注意到must这个单词了么?呵呵。


yello2000i 2001-06-05
  • 打赏
  • 举报
回复
在头文件中加入声明,不要在类里:
UINT MultiProcessTest(LPVOID pParam);
在实现文件:
UINT MultiProcessTest(LPVOID pParam)
{
int h=(int)pParam;
return 0;
}
int h=2;
用这种方式调用:CWinThread *gx=AfxBeginThread(MultiProcessTest,h,THREAD_PRIORITY_NORMAL);
yello2000i 2001-06-05
  • 打赏
  • 举报
回复
AfxBeginThread()的第一个参数是不属于任何一个类的函数名.可以将变量作为参数传给线程.
HealthMeng 2001-06-05
  • 打赏
  • 举报
回复
楼上这位说的正确,但这个编译错误主要是因为函数类型不对的原因。
函数类型应该是UINT MyControllingFunction( LPVOID pParam );并且要么是全局的,要么是静态成员函数。
slihai 2001-06-05
  • 打赏
  • 举报
回复
To:windoze
我把函数声明乘静态的,那怎么用类里的成员变量啊??
windoze 2001-06-05
  • 打赏
  • 举报
回复
AfxBeginThread需要一个全局函数或者类的静态成员函数作为新线程的入口点,普通的类成员函数第一个参数隐含为this,调用的时候当然会出错。
slihai 2001-06-05
  • 打赏
  • 举报
回复
ding !!
slihai 2001-06-05
  • 打赏
  • 举报
回复
???
slihai 2001-06-05
  • 打赏
  • 举报
回复
告诉我啊
slihai 2001-06-05
  • 打赏
  • 举报
回复
?????
slihai 2001-06-05
  • 打赏
  • 举报
回复
怎么写才对呀???
panda_w 2001-06-05
  • 打赏
  • 举报
回复
参数不正确

15,471

社区成员

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

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