AfxBeginThread 参数出错

tigertyy 2010-05-27 11:03:25
在一个MFC工程里,调用AfxBeginThread函数创建线程!使用如下语句
AfxBeginThread(Func,GetSafeHwnd());
回调函数Func定义成全局函数,在.h文件中中声明成 UINT Func(LPVOID lpParam){}
可现在问题是在开启线程函数处出现:afxbeginthread:none of the 2 overloads can convert parameter 1 from type 'unsigned int(_cded *)(long)'的错误!
各位大侠请指教,这到底是为什么啊?
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2010-05-27
  • 打赏
  • 举报
回复
static UINT Func(LPVOID lpParam){ return 0;};
zhouyongku 2010-05-27
  • 打赏
  • 举报
回复
函数定义有问题
定义为全局函数UINT MyFun(.....);就不会有问题
zhouyongku 2010-05-27
  • 打赏
  • 举报
回复
函数定义有问题
UINT MyFun(.....);
wltg2001 2010-05-27
  • 打赏
  • 举报
回复
AfxBeginThread(Func,GetSafeHwnd());
=======================
改成这样试试:AfxBeginThread( (AFX_THREADPROC)Func, GetSafeHwnd());
wltg2001 2010-05-27
  • 打赏
  • 举报
回复
在.h文件中中声明成 UINT Func(LPVOID lpParam){}
===========
声明中就不应该加{}了,应该写成在.h文件中中声明成 UINT Func(LPVOID lpParam);
onlyliu 2010-05-27
  • 打赏
  • 举报
回复
把类头 加上 UINT YOURCLASS::Func(LPVOID lpParam){}
liruda 2010-05-27
  • 打赏
  • 举报
回复
应该吧线程函数定义为
DWORD WINAPI ThreadFunc(PVOID pvParam)
wltg2001 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 vansinba 的回复:]
静态成员正解
[/Quote]
人家的函数又不是类的成员函数,用的是全局函数,怎么不行啊,还是加(AFX_THREADPROC)转化一下类型。
vansinba 2010-05-27
  • 打赏
  • 举报
回复
静态成员正解
Mi_Bo 2010-05-27
  • 打赏
  • 举报
回复
unsigned int(_cded *)(long) 定义成这个类型就vok了
昨夜无风 2010-05-27
  • 打赏
  • 举报
回复
定义成static 成员函数

15,471

社区成员

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

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