MFC CString 字符串读取配置文件路径与直接赋值路径导致读取结果不同的解决办法

案例如下:

方法一:从配置文件读取路径

  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()方法释放,切结括号里面不能添加数据长度,否则会无效)

以上是自己的经历,及简单理解,没有深入研究,仅供参考,只是希望对遇到相同情况的同行能有所帮助。

有不妥之处,欢迎指定,感激不尽!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值