CSTRING对象有作用域问题,最好通过函数参数返回,即传入CSTRING&(引用)的参数

解决方案 »

  1.   

    CSTRING对象超出了作用域,通过函数参数返回会更合适,就象MFC中的 CWnd::GetWindowText(..),即传入CSTRING&(引用)的参数, 当然也可以用指针,只是引用似乎更方便.
      

  2.   

    xxx在离开它的作用域后当然会变成乱码,就是你在调试时看到的。不过在运行时调用函数得到的返回值是乱码却不是这个原因引起的。因为在函数的返回时系统会创建一个临时对象,用以存放返回值。调用函数实际上得到的是这个临时对象。
    如果你在调用函数中有指针来得到这个临时对象的话就会得到垃圾值,因为这个临时对象已被撤消了.你必需用一个在调用函数中建立的实际对象来保存它.