win32 使用GetPrivateProfileString 读配置文件问题

归途醉染 2017-10-10 08:28:55
我使用GetPrivateProfileString读一个配置文件 然后用strcmp 比较 现在遇到的问题是 使用GetPrivateProfileString
去读一个根本不存在的配置文件 然后去比较 居然相等..................
它的返回值不知道是一个什么鬼 应该怎么使用它去读一个不存在的配置文件时候 返回错误
或者 大神 有好的win32 的读写配置文件的方法 感激不尽
...全文
382 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2017-10-12
  • 打赏
  • 举报
回复
检查GetPrivateProfileString返回值判断是否执行成功,成功了再去比较 https://msdn.microsoft.com/zh-cn/library/ms724353.aspx
归途醉染 2017-10-12
  • 打赏
  • 举报
回复
函数正确的...打印日志也有值.. 我把问题解决了 谢谢大家 这个函数不错 lstrcmpi
归途醉染 2017-10-12
  • 打赏
  • 举报
回复
谢谢大家 感谢
「已注销」 2017-10-11
  • 打赏
  • 举报
回复
一切都只是你说,我们并不知道你实际的过程出现了什么问题。是调用错误,还是返回值不对,或者是其他原因?GetPrivateProfileString 参数传递是否正确?比如路径。第三个参数是默认值,如果不存在的话,看看返回的 DWORD 值是什么,以及传递的字符串得到什么,还有 GetLastError 等。自己包装一下这个 API,因为它自身的返回值太有限了,如果你不进行其他的额外判断,很难知道因为什么原因。不要使用 strcmp 在 Windows 开发时比较字符串,用 lstrcmp 或 lstrcmpi 代替。
大尾巴猫 2017-10-11
  • 打赏
  • 举报
回复
要判断函数返回值。 msdn关于这个函数的返回值,其中有这么一句: In the event the initialization file specified by lpFileName is not found, or contains invalid values, this function will set errorno with a value of '0x2' (File Not Found). To retrieve extended error information, call GetLastError.
赵4老师 2017-10-11
  • 打赏
  • 举报
回复
无代码,无真相!
ForestDB 2017-10-11
  • 打赏
  • 举报
回复
空口无凭,要么加log,要么上debugger。
3m2u 2017-10-11
  • 打赏
  • 举报
回复
GetPrivateProfileString 不是有个默认值 么 设置这个了?

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧