兩個CString相加,得到的卻只是其中的一個CString。

在很多時候我們會把從文件讀出來的cstring變量直接賦值,然後拿去相加,這樣就有可能會產生這個問題。

CString a;	//定義一個cstring變量
GetPrivateProfileString(pot, _T("SerialNum"),CString("NULL"),
a.GetBuffer(MAX_PATH), MAX_PATH, strpath);//從文件中讀取數據到a

CString c ;
c = a;//把最開始的數賦給c
CString b = _T("123");
CString d = _T("789");
CString e ;
e = b + c + d;

在這裏我們獲取到的結果如下圖

得到的e不是我們所需要的值;

解決的方法就是在我們完成賦值之後,也就是在把a賦值給c後,進行一個清除緩存的操作。

a.ReleaseBuffer();

這樣的畫我們就可以得到正確的值了。

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