Я работаю над программой в Visual Studio 2003 C ++, которая сохраняет данные в файлах .ini.Программа уже написана;Это полнофункциональное приложение для Windows, которое анализирует данные пациента, взятые из лаборатории сна (много-много строк кода).
Программа использует INI-файлы для чтения и записи данных пациента, таких как имя пациента, идентификатор пациента, имя врача и т. Д.На днях мой начальник сказал мне, что если путь к .ini слишком длинный, некоторые данные не сохраняются.
При дальнейшей проверке я обнаружил, что если полный путь к файлу .ini превышает 128 символов, некоторые поля в этом файле .ini не сохраняются на диск.Это странно, потому что другие поля сохраняются, а другие нет.
Я не уверен, это проблема с Windows, или это может быть связано с кодом?Код использует функции GetPrivateProfileString () и WritePrivateProfileString () для записи и чтения из INI-файлов.Насколько я вижу, он обрабатывает все INI-файлы одинаково и просто считывает их при необходимости и записывает в них при сохранении файла.
Мне действительно любопытно, почему некоторые поля сохраняются, а некоторые нет, если путь превышает 128 символов.У кого-нибудь есть идеи относительно того, к какой области может относиться эта проблема и что происходит за кулисами, чтобы сделать это?
Программа написана с: Visual Studio 2003
ОС: WindowsXP
Спасибо за любую помощь и понимание:)
******* РЕДАКТИРОВАТЬ: поворотыВ коде используется функция OpenFile http://msdn.microsoft.com/en-us/library/aa365430(VS.85).aspx для открытия INI-файлов, и это позволяет использовать не более 128 символов.
Я собираюсь попытаться изменить функциональность на функцию CreateFile без прерываниякод ....