简单问题,线程不能Create,请帮忙检查代码,谢谢

csdnxw 2003-10-24 02:31:19
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CreateThread(0, 0, ThreadReadComm, this, 0, NULL);
}
//-------------------------------------------------------

DWORD WINAPI TForm1::ThreadReadComm(LPVOID iComm)
{
return 0;
}

错误提示如下:
1、Cannot convert 'unsigned long (__stdcall * (_closure )(void *))(void *)' to 'unsigned long (__stdcall *)(void *)'
2、Type mismatch in parameter 'lpStartAddress' (wanted 'unsigned long (__stdcall *)(void *)', got 'void')

好像是说我的传递的线程函数类型不对,我仔细察看后感觉没有问题。
(在别人的机器上运行得到同样错误。)
请各位熟悉Thread的弟兄帮帮忙,看看我的这段代码。
万分感谢
...全文
30 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnxw 2003-10-24
  • 打赏
  • 举报
回复
谢谢各位
dolphin2001 2003-10-24
  • 打赏
  • 举报
回复
楼上说的对。
yesry 2003-10-24
  • 打赏
  • 举报
回复
static DWORD WINAPI ThreadReadComm(LPVOID iComm);
sfemil 2003-10-24
  • 打赏
  • 举报
回复
是这样的ThreadReadComm(LPVOID iComm)的定义放置在窗体类中。这样实际上函数存在两个参数,系统默认为你加了一个参数。TObject* Sender.

你可以这样做:
如果在线程函数中不调用窗体类中的数据 你可以在类外边定义该函数。

如果需要访问窗体类的私有变量等信息,则你需要在外边定义函数的同时,在窗体类中声明该函数为友元函数。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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