案例如下:
方法一:从配置文件读取路径
GetPrivateProfileString("parameter", "sourcefacespath", "NULL", strWindow.GetBuffer(1024), 1024, m_inipath);
//strWindow.ReleaseBuffer(1024); //加上这一句,也获取不到路径下的文件
CString m_folderPath = strWindow;
CString strWildCard =m_folderPath ;
strWildCard += "\\*.*";
方法二:直接赋值
CString m_folderPath ="\\\\192.168.1.132\\Users\\ZJS\\Desktop\\facesSample";
CString strWildCard =m_folderPath ;
strWildCard += "\\*.*";
结果是:方法二可以从路径中获取文件,而方法一不可以;
解决方法:
GetPrivateProfileString("parameter", "sourcefacespath", "NULL", strWindow.GetBuffer(1024), 1024, m_inipath);
strWindow.ReleaseBuffer(); //括号里不能加数据长度
原因分析:
GetPrivateProfileString读取配置文件字符串数据时需指定字符串长度,而往往指定的字符串长度都大于实际字符串长度,从而导致下面字符串拼接时出现问题,所以需要手动释放多余空的字符(调用ReleaseBuffer()方法释放,切结括号里面不能添加数据长度,否则会无效)
以上是自己的经历,及简单理解,没有深入研究,仅供参考,只是希望对遇到相同情况的同行能有所帮助。