其中trkfname为CString类型:
CString trkfnamewav;
trkfnamewav=trkfname;
trkfnamewav.Delete(trkfnamewav.ReverseFind('.'),4);在断点调试到trkfnamewav=trkfname时trkfnamewav的值为:
{0x00a33060 "H:\20050921\20050909101612_5214566_1_1973_u.wav"}
为什么我在执行了trkfnamewav.Delete(trkfnamewav.ReverseFind('.'),4)之后,trkfnamewav的值却没有改变;郁闷ing。另外:
我用int kk2=trkfnamewav.GetLength();时,kk2的值居然等于2;
用int kkk=trkfnamewav.ReverseFind('.');时,kkk的值为43;求各位帮忙啊,
我只有最后的10分了,各位分是少了点,还是帮忙一下把

解决方案 »

  1.   

    不知道你怎么做的!!我测试了如下代码!没问题 CString trkfnamewav(_T("H:\\20050921\\20050909101612_5214566_1_1973_u.wav"));
    trkfnamewav.Delete(trkfnamewav.ReverseFind('.'),4);
    trkfnamewav.Delete(trkfnamewav.ReverseFind('.'),4);
    AfxMessageBox(trkfnamewav);
      

  2.   

    多了个trkfnamewav.Delete(trkfnamewav.ReverseFind('.'),4);
      

  3.   

    实在不行,可以改变一下策略,采用Mid函数,应该没问题
      

  4.   

    我在别的例子测试可以成功,但就是这个不可以,
    trkfname的值是从数据库里读出来的,
    哎,搞得我崩溃了
      

  5.   

    这一段代码看不出有问题啊
    是不是前面有用过CString.GetBuffer没有ReleaseBuffer呀
      

  6.   

    我没有用ReleaseBuffer,我试一下啊,
    不过我只是在strcat函数中才用了GetBuffer函数
      

  7.   

    GetBuffer和ReleaseBuffer须成对使用,否则就可能出现这种怪问题