头文件里声明CStringArray strFileName;
函数里strFileName.SetSize(30,128);   strFileName.Add(str);  str是有值的,可是strFileName里没有值,为什么?

解决方案 »

  1.   

    因为你使用了SetSize,下次调用add的时候,字符串被添加到30个空字符串的后面,也就是
    CString strResult = strFileName.GetAt(30);
      

  2.   

    我把strFileName.SetSize(30,128)写到初始化函数里,strFileName.Add(str)写在别的函数里也不行。  
      

  3.   

    试试改为:strFileName.SetSize(0,128);  
      

  4.   

    str肯定是添加进去了,你可以用Add的返回值来GetAt就可以得到str。
      

  5.   


    恩,为什么得到的是30?strFileName.SetSize(30,128);第一个参数不是元素的多少?
      

  6.   

    SetSize 的第 1 个参数是设置数组的大小,如果设置为 30 则数组在初始化时已经有 30 个元素了(索引值为:0 - 29),而随后添加的元素是从 31 (索引值为:30)开始的。
      

  7.   

    设定元素后,Add属于继续添加,添加到后面了