c++编程中变量传值多次变成乱码的问题?

最近使用MFC 写一个对话框程序,发现一个非常烦人的问题,就是我在一个类中的CString类型的变量是从ini文件读出的,在另类中调用这个全局变量时候,将这个变量使用多次后,变量的内容发生了变化,变成了乱码

举个例子

class A{

CString strA = _T"hello";

}

classB{

CString strB = A.strA ;

//这时候中断strB查看的值是正确的

string b = toString(strB);//就是在这里加了中断后,进入toString函数,发现传进来的值变成了乱码

//还有一种现象就是在调用外部类变量进行运算时候也会出问题

CString strC =strB + _T("world")//这里计算出来的strC 值为“world”;

}

就这个问题找了好久没有找到原因,只有解决办法使用Format格式化一下

CString strB ;

strB.Format(_T("%s"),A.strA );

这样就不会报错了,但是原因很值得去深挖一下。如果有遇到同样问题或知道原因的可以留言讨论一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值