Есть ли ограничение на размер WritePrivateProfileStruct? - PullRequest
2 голосов
/ 22 марта 2010

Я пытаюсь записать INI-файл, используя функции WritePrivateProfileString и WritePrivateProfileStruct.

Я обнаружил, что когда число байтов относительно низкое, WritePrivateProfileStruct и GetPrivateProfileStruct работают нормально, но с большим числом байтов (62554 байта в моем случае), функция Write, похоже, работает, но Get функция не.

Я не нашел ограничения размера для этих функций в документации MS. Почему это происходит?

1 Ответ

3 голосов
/ 22 марта 2010

Да, я репро.Самый большой буфер, который я могу прочитать назад, составляет 32766 байт.Большие значения дают ERROR_BAD_LENGTH.С контрольной суммой и завершающим нулем, мне кажется, что он использует внутренний буфер длиной (32766 + 2) * 2 = 65536 байт.Имеет смысл, это устаревший 16-битный API.

Вы действительно должны рассмотреть возможность использования обычного файла.Но обходной путь - разделить буфер на две части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...