用CSting.Empty()对一个串清空,但是并不能清空,而且其值变为以前的一个值,还会把别的CSting的值影响,真奇怪?我用的是VC6.0

解决方案 »

  1.   

    不可能啊
    Empty()的作用是:
    Makes this CString object an empty string and frees memory as appropriate.摘自msdn
      

  2.   

    这么基本的功能,MFC是不会有bug的。
    问题很可能是你的CString对象的指针指到了一个不正确的地址。比如说,你的 CString * pstr 所指的对象由于超出范围而被释放了。
      

  3.   

    肯定是指针用错的问题!
    查一下有没有如下错误:
    char *p = new char[6];
    p = "abcde";
      

  4.   

    CSting.Empty() 我用了,没问题。但不运行你的程序,看看运行到CSting.Empty()时实什么样的情况。别动不动就说MFC有BUG。
      

  5.   

    CString str;str="what is your name";str.Empty();
      

  6.   

    因该是你的代码的问题,如果vc会有这种bug,微软就别混了。看看你是不是把两个字符串共用一个内存地址了?(比如说用了别名什么的)。
      

  7.   

    两个字符串共用一个内存地址了?我在一个函数里面定义了两个串,这个函数传进一个串参数,这个串参数用Empty()后,函数里面定义了两个串和这个串参数地址居然一样.
      

  8.   

    两个字符串共用一个内存地址了?我在一个函数里面定义了两个串,这个函数传进一个串参数,这个串参数用Empty()后,函数里面定义了两个串和这个串参数地址居然一样.