我在调试程序的时候,很多时候,有好多函数都出现这样的错误:
G:\练习程序\Lx\LxListView.cpp(136) : error C2228: left of '.GetItemCount' must have class/struct/union typeG:\练习程序\Lx\LxListView.cpp(141) : error C2228: left of '.InsertItem' must have class/struct/union typeG:\练习程序\Lx\LxListView.cpp(143) : error C2228: left of '.GetStyle' must have class/struct/union type等等等等,我想请教一下大家,这样的错误是什么原因?应该如何去改?谢谢!

解决方案 »

  1.   

    上面列举的这几个函数,都是这样用的:
    item.iItem = GetListCtrl().GetItemCount();int ndx=GetListCtrl().InsertItem(&item);if (GetListCtrl().GetStyle() & LVS_REPORT)
    {
    GetListCtrl().SetItemText(ndx, 1, pInfo->m_sComment); 
    };//SetItemText也出现上述的错误
      

  2.   

    GetListCtrl()->InsertItem(&item);用->这样的形式访问.GetListCtrl()得到的应该都是指针形式
      

  3.   

    你的函数GetListCtrl()返回的指针是否定义?
      

  4.   

    我把.改成->了,可是还是有这样的错误:G:\练习程序\Lx\LxListView.cpp(141) : error C2227: left of '->InsertItem' must point to class/struct/unionG:\练习程序\Lx\LxListView.cpp(143) : error C2227: left of '->GetStyle' must point to class/struct/unionG:\练习程序\Lx\LxListView.cpp(145) : error C2227: left of '->SetItemText' must point to class/struct/union
    G:\练习程序\Lx\LxListView.cpp(136) : error C2227: left of '->GetItemCount' must point to class/struct/union到底是怎么回事啊?
      

  5.   

    CListCtrl& theCtrl = GetListCtrl();
    然后再:item.iItem = theCtrl.GetItemCount();
    .....
      

  6.   

    我按照楼上的做法试了,出现了两边类型不匹配的错误:G:\练习程序\Lx\LxListView.cpp(137) : error C2440: 'initializing' : cannot convert from 'int' to 'class CListCtrl &'
      

  7.   

    GetListCtrl()定义的问题,在第一个问题里,编译器认为“它不是一个结构或类或联合,你用了“.“运算符。“,改成"->"后,编译器认为“不是一个对象指针或结构指针”,最后CListCtrl& theCtrl ,你定义了CListCtrl类指针theCtrl,将 GetListCtrl()的值赋给他,编译器认为,你把一个整形赋给一个指针出错,我不知道GetListCtrl()是个什么,按错误信息来看,好像是个返回值为整型的函数
      

  8.   

    我把item.iItem = GetListCtrl().GetItemCount();改成如下的样子:CListCtrl m_list;
    item.iItem = m_list.GetItemCount();
    上述的错误就没有了。其他几个语句也类似,修改之后就没有了那样的错误。