MFC中 CString中有值,但IsEmpty GetLength函数都为空

MFC中 CString中有值,但IsEmpty GetLength函数都为空
例如:
CString strContext = L"“;
GetPrivateProfileString(strSection, strKey, NULL, strContext.GetBuffer(MAX_PATH), MAX_PATH, strPath);
从上面得到的 strContext = L"1200” 类型为CString
strContext .IsEmpty() 返回值 为 true
strContext .GetLength() 返回值为 0

为什么会这样呢? 这是因为在获取str的地方,使用了GetBuffer(),
在使用完后,要使用ReleaseBuffer()更新字符串的长度
解决:
CString strContext = L"";
GetPrivateProfileString(strSection, strKey, NULL, strContext.GetBuffer(MAX_PATH), MAX_PATH, strPath);
//2022.11.14 添加此句
strContext.ReleaseBuffer();//ReleaseBuffer只有一个作用,就是更新字符串的长度
参考
: https://blog.csdn.net/allenq/article/details/88716690

你可能感兴趣的:(MFC,mfc,c++)