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 );

這樣就不會報錯了,但是原因很值得去深挖一下。如果有遇到同樣問題或知道原因的可以留言討論一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章