CStringArray *ResultStar;
ResultStar=new CStringArray[200];
ResultStar->Add("身高!=空");
   ResultStar->Add("头发!=空");
    ResultStar->Add("眼睛!=空");
AfxMessageBox(ResultStar->GetAt(0));
上面能出来显示出来窗口,但是我用断点单步调试时,抱错:
member function not present,怎么回事啊?
还有如果CStringArray ResultStar;这样写要不要分配空间啊?

解决方案 »

  1.   

    CStringArray用SetAt赋值,你从哪看见用"Add"的?
      

  2.   

    setAt可以置换一个以前有的元素,add也可以吧,是添加一个元素.
    ResultStar引用所有的过程语句都有这个问题.但AfxMessageBox(ResultStar->GetAt(0));
    却是能执行输出的.
    CStringArray *ResultStar;为全局变量.
    ResultStar=new CStringArray[200];为在某个.cpp中做.哪里有问题?
      

  3.   

    哦,我晕了。你声明了一个CStringArray的数组,每个元素都是一个CStringArray,这不是你要的吧?应该是声明一个CStringArray变量,用Add增加元素,数组大小会自动增加的。
      

  4.   

    CStringArray *ResultStar;
    ResultStar=new CStringArray[200;
    iisbsd(墙头草)你的意思我上面写错了.哪错了?我是要一个数组.
    那应该怎么写?
      

  5.   

    你既然用了CStringArray,表明你至少需要一个 CString 的数组
    不过你现在声明的是一个 CStringArray 的数组
    因此才怀疑你是不是声明错了
      

  6.   

    嘿嘿,二楼说的对,你不用new出200个元素,直接:
    CStringArray *ResultStar;
    ResultStar=new CStringArray;
    就OK啦.
    CStringArray这种本身就是一个数据集呀,不知道你有没有用过STL,与那个STL神似,不过这里还支持串行化.
      

  7.   

    那我直接定义变量怎么写啊?还要不要
    CStringArray ResultStar;
    ResultStar=new CStringArray;
    要不要第二句?
      

  8.   

    CStringArray Group1Data;
    Group1Data.Add(m_height);
     Group1Data.Add(m_hair);
     Group1Data.Add(m_eye);
    怎么还出错啊:error:argument list does not match a  function 
    怎么弄?
      

  9.   

    上面的m_height为Cstring 
     CString m_eye;
    CString m_group;
    CString m_hair;
    CString m_height;