最近在写程序的时候发现了一个比较冷门的错误,花了一点时间解决了这个问题,下面记录一下以备用:
我在调用ini配置文件的时候,使用了这样一段代码:
CString sCurrentPath;
GetCurrentDirectoryW(MAX_CSTRING_LENGTH,sCurrentPath.GetBuffer(MAX_CSTRING_LENGTH));
CString sFilePath = sCurrentPath + L"\\sys.ini";
然后我发现,sCurrentPath的值是正常的,但是sFilePath的值仍然是"\\sys.ini"。
经过摸索发现问题应该这么解决:
在GetCurrentDirectoryW后面添加一句:
sCurrentPath.ReleaseBuffer();
释放CString的缓冲区之后,该CString变量才能够用于加法计算。