【发布时间】:2011-04-25 13:27:59
【问题描述】:
我正在使用 Visual Studio 2003 C++ 编写一个使用 .ini 文件保存数据的程序。程序已经写好了;它是一个完整的 Windows 应用程序,可以分析从睡眠实验室获取的患者数据(大量代码行)。
程序使用.ini 文件来读取和写入患者数据,例如患者姓名、患者ID、医生姓名...等。前几天我的老板告诉我,如果.ini 的路径太长,一些数据将无法保存。
经过进一步检查,我发现如果 .ini 文件的完整路径名超过 128 个字符,则该 .ini 文件中的某些字段不会保存到磁盘。这很奇怪,因为确实会保存其他字段,而其他字段则不会。
我不确定,这是 Windows 的问题,还是与代码有关?该代码使用 GetPrivateProfileString() 和 WritePrivateProfileString() 函数来写入和读取 ini 文件。据我所知,它对所有 ini 文件一视同仁,只在需要时读取它们,并在保存文件时写入它们。
我真的很好奇为什么当路径超过 128 个字符时有些字段会被保存而有些则不会。有没有人知道这个问题可能属于哪个领域以及幕后发生了什么?
程序是用: 视觉工作室 2003
操作系统是: 视窗XP
感谢您的帮助和见解:)
*******编辑: 原来代码使用 OpenFile 函数 http://msdn.microsoft.com/en-us/library/aa365430(VS.85).aspx 打开 ini 文件,而这只允许最多 128 个字符。
我将尝试在不破坏代码的情况下将功能更改为 CreateFile 函数......
【问题讨论】:
标签: visual-c++ windows-xp