在很多時候我們會把從文件讀出來的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();
這樣的畫我們就可以得到正確的值了。