pthread_create在qt下的使用错误

LEOBB_DB 2009-12-30 05:20:13
pthread_create(.. , ... , fun ,NULL);fun为一个类usr_window_ioctl的成员函数;但如果定义在里面,就出现下面错误:
usr_window_ioctl.cpp:77: 错误:cannot convert ‘void* (usr_window_ioctl::*)(void*)’ to ‘void* (*)(void*)’ for argument ‘3’ to ‘int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’
意思是不是类中的成员函数不能作为pthread_create的参数,这种情况应该怎么办?(有的编译器在pthread_create里用&fun,不过有多了个 错误:ISO C++ 不允许通过提取)
...全文
510 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingsking18 2010-01-05
  • 打赏
  • 举报
回复
类成员函数不能用做线程参数.
只有全局函数和静态函数才可以.
dext 2010-01-05
  • 打赏
  • 举报
回复
为什么 不用 QThread? 如果 一定要用 pthread的话,用 静态 类方法吧。
LEOBB_DB 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hpsmouse 的回复:]
成员函数指针和一般的函数指针是不同的结构,不能相互兼容。
可以在外部用普通函数包装一下,或者静态函数好像也可以。
[/Quote]
先谢谢回帖
我试了下,可以用静态函数
2010-01-05
  • 打赏
  • 举报
回复
成员函数指针和一般的函数指针是不同的结构,不能相互兼容。
可以在外部用普通函数包装一下,或者静态函数好像也可以。
tudousi11 2009-12-30
  • 打赏
  • 举报
回复
先检查一下是否可以直接将函数作为形参传递的,如果可以,尝试一下使用函数的指针作为形参传递,

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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