关于线程参数传递的问题。。

kekeke 2001-07-19 03:52:00
// Attributes
public:
CListCtrl m_List;
/////////////

int CKolView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
....
AfxBeginThread(EnumComputers, (LPVOID)m_List);
}

UINT EnumComputers(LPVOID param)
{
...

CListCtrl *m_List1;
m_List1=(CListCtrl *)param;
int nItem=0;
nItem= m_List.InsertItem(0,"kkkkkkk");
m_List.SetItemText(nItem,1,"kkkk");

}

编译的时候出现:error C2228: left of '.InsertItem' must have class/struct/union type

我的CListCtrl m_List;是全局变量来的,是什么原因呢?


...全文
122 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
传递参数有问题,应该是:
AfxBeginThread(EnumComputers, (LPVOID)&m_List);
ufc 2002-07-15
  • 打赏
  • 举报
回复
你的指针用法不对,就应该是
nItem= m_List->InsertItem(0,"kkkkkkk");
m_List->SetItemText(nItem,1,"kkkk");
neomeng 2001-07-19
  • 打赏
  • 举报
回复
不能这样使用,应该引用该成员变量的指针。
Tasehouny 2001-07-19
  • 打赏
  • 举报
回复
so easy
tlovexyj 2001-07-19
  • 打赏
  • 举报
回复
仔细看了一下,这里有问题。
如果你这么用的话:
CListCtrl *m_List1;
m_List1=(CListCtrl *)param;
后面应该是:
int nItem=0;
nItem= m_List1->InsertItem(0,"kkkkkkk");
m_List1->SetItemText(nItem,1,"kkkk");

因为m_List1和m_list都是CListCtrl指针。
调用成员函数应该用->而不是.
tlovexyj 2001-07-19
  • 打赏
  • 举报
回复
既然是全局变量,因为子线程和主线程共用数据段,所以可以直接用。不过应该使用互斥来保证线程安全,将子线程对该全局变量的访问队列化。
子线程消息独立。

如果是局部变量,则子线程处理函数里必须实例化自己的变量,而不应该直接使用传来的变量。
kimryo 2001-07-19
  • 打赏
  • 举报
回复
小弟有一法:

申明一全局类指针CKolView *pc=NULL;
在InitDlg时pc=this;

再在线程函数中用pc->m_List.@#$%^&*
Congy 2001-07-19
  • 打赏
  • 举报
回复
m_List是view类的public成员变量而不是全局变量
如果你想使用的话应再声明一个真正的全局变量
1在头文件中用extern关键字来声明
2在实现文件中再声明一下
lgs 2001-07-19
  • 打赏
  • 举报
回复
编译错误是C语言语法问题,先搞清楚__cpluscplus, 建议你好好温习温习C语言。
黑白双傻 2001-07-19
  • 打赏
  • 举报
回复
public:
CListCtrl m_List;
还是应该是成员变量,成员变量本来就是在.h文件里面定义的啊。
因为你用了public:,这肯定是在类里面。

另外,传参数的时候,是不是应该传指针呢
AfxBeginThread(EnumComputers, (LPVOID)&m_List);
kekeke 2001-07-19
  • 打赏
  • 举报
回复
我想问,这里的m_List1还是不是m_List了?
kekeke 2001-07-19
  • 打赏
  • 举报
回复
public:
CListCtrl m_List;

是在KolView.h中定义的。。。
verybigbug 2001-07-19
  • 打赏
  • 举报
回复
public:
CListCtrl m_List;
??
好像是成员变量嘛。

15,471

社区成员

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

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